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

Implement some parts for loading data from a directory

This commit is contained in:
teru
2016-07-31 10:06:30 +09:00
parent d5d735e559
commit 7cac94f0f3
10 changed files with 853 additions and 0 deletions

48
aliasuser.go Normal file
View File

@@ -0,0 +1,48 @@
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
}