1
0
mirror of https://github.com/directorz/mailfull-go.git synced 2025-12-17 17:47:04 +00:00
Files
mailfull-go/aliasuser.go

49 lines
876 B
Go

package mailfull
import "errors"
// Errors for parameter.
var (
ErrNotEnoughAliasUserTargets = errors.New("AliasUser: targets not enough")
)
// AliasUser represents a AliasUser.
type AliasUser struct {
name string
targets []string
}
// NewAliasUser creates a new AliasUser instance.
func NewAliasUser(name string, targets []string) (*AliasUser, error) {
if !validAliasUserName(name) {
return nil, ErrInvalidAliasUserName
}
if len(targets) < 1 {
return nil, ErrNotEnoughAliasUserTargets
}
for _, target := range targets {
if !validAliasUserTarget(target) {
return nil, ErrInvalidAliasUserTarget
}
}
au := &AliasUser{
name: name,
targets: targets,
}
return au, nil
}
// Name returns name.
func (au *AliasUser) Name() string {
return au.name
}
// Targets returns targets.
func (au *AliasUser) Targets() []string {
return au.targets
}