1234567891011121314151617181920212223242526package 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}