package target

import "strings"

type Target struct{ User, Host, ID string }

func Parse(s string) (t Target) {
	s = strings.TrimSpace(s)
	if u, rest, ok := strings.Cut(s, "@"); ok {
		t.User, s = u, rest
	}
	if i := strings.LastIndexByte(s, '.'); i >= 0 {
		t.Host, t.ID = s[:i], s[i+1:]
	} else {
		t.Host = s
	}
	return
}

func (t Target) Dest() string {
	if t.User != "" {
		return t.User + "@" + t.Host
	}
	return t.Host
}
