From c7e56f26aff281e7274f35643f6047a59e4dd68f Mon Sep 17 00:00:00 2001 From: teru Date: Tue, 25 Jul 2017 12:29:23 +0900 Subject: [PATCH] Remove types for sort.Interface --- aliasdomain.go | 9 +-------- aliasuser.go | 9 +-------- cmd/mailfull/cmd_aliasdomains.go | 2 +- cmd/mailfull/cmd_aliasusers.go | 2 +- cmd/mailfull/cmd_domains.go | 2 +- cmd/mailfull/cmd_users.go | 2 +- database.go | 8 ++++---- domain.go | 7 ------- user.go | 7 ------- 9 files changed, 10 insertions(+), 38 deletions(-) diff --git a/aliasdomain.go b/aliasdomain.go index b1fc2f7..4563f0b 100644 --- a/aliasdomain.go +++ b/aliasdomain.go @@ -15,13 +15,6 @@ type AliasDomain struct { target string } -// AliasDomainSlice attaches the methods of sort.Interface to []*AliasDomain. -type AliasDomainSlice []*AliasDomain - -func (p AliasDomainSlice) Len() int { return len(p) } -func (p AliasDomainSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p AliasDomainSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewAliasDomain creates a new AliasDomain instance. func NewAliasDomain(name, target string) (*AliasDomain, error) { ad := &AliasDomain{} @@ -190,7 +183,7 @@ func (r *Repository) writeAliasDomainsFile(aliasDomains []*AliasDomain) error { } defer file.Close() - sort.Sort(AliasDomainSlice(aliasDomains)) + sort.Slice(aliasDomains, func(i, j int) bool { return aliasDomains[i].Name() < aliasDomains[j].Name() }) for _, aliasDomain := range aliasDomains { if _, err := fmt.Fprintf(file, "%s:%s\n", aliasDomain.Name(), aliasDomain.Target()); err != nil { diff --git a/aliasuser.go b/aliasuser.go index 647bcfe..cd9d66c 100644 --- a/aliasuser.go +++ b/aliasuser.go @@ -21,13 +21,6 @@ type AliasUser struct { targets []string } -// AliasUserSlice attaches the methods of sort.Interface to []*AliasUser. -type AliasUserSlice []*AliasUser - -func (p AliasUserSlice) Len() int { return len(p) } -func (p AliasUserSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p AliasUserSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewAliasUser creates a new AliasUser instance. func NewAliasUser(name string, targets []string) (*AliasUser, error) { au := &AliasUser{} @@ -233,7 +226,7 @@ func (r *Repository) writeAliasUsersFile(domainName string, aliasUsers []*AliasU } defer file.Close() - sort.Sort(AliasUserSlice(aliasUsers)) + sort.Slice(aliasUsers, func(i, j int) bool { return aliasUsers[i].Name() < aliasUsers[j].Name() }) for _, aliasUser := range aliasUsers { if _, err := fmt.Fprintf(file, "%s:%s\n", aliasUser.Name(), strings.Join(aliasUser.Targets(), ",")); err != nil { diff --git a/cmd/mailfull/cmd_aliasdomains.go b/cmd/mailfull/cmd_aliasdomains.go index 0a8bf2c..43a07fe 100644 --- a/cmd/mailfull/cmd_aliasdomains.go +++ b/cmd/mailfull/cmd_aliasdomains.go @@ -60,7 +60,7 @@ func (c *CmdAliasDomains) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.AliasDomainSlice(aliasDomains)) + sort.Slice(aliasDomains, func(i, j int) bool { return aliasDomains[i].Name() < aliasDomains[j].Name() }) for _, aliasDomain := range aliasDomains { if targetDomainName != "" { diff --git a/cmd/mailfull/cmd_aliasusers.go b/cmd/mailfull/cmd_aliasusers.go index 4469f09..c153994 100644 --- a/cmd/mailfull/cmd_aliasusers.go +++ b/cmd/mailfull/cmd_aliasusers.go @@ -57,7 +57,7 @@ func (c *CmdAliasUsers) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.AliasUserSlice(aliasUsers)) + sort.Slice(aliasUsers, func(i, j int) bool { return aliasUsers[i].Name() < aliasUsers[j].Name() }) for _, aliasUser := range aliasUsers { fmt.Fprintf(c.UI.Writer, "%s\n", aliasUser.Name()) diff --git a/cmd/mailfull/cmd_domains.go b/cmd/mailfull/cmd_domains.go index bc215f2..9c3ba38 100644 --- a/cmd/mailfull/cmd_domains.go +++ b/cmd/mailfull/cmd_domains.go @@ -47,7 +47,7 @@ func (c *CmdDomains) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.DomainSlice(domains)) + sort.Slice(domains, func(i, j int) bool { return domains[i].Name() < domains[j].Name() }) for _, domain := range domains { disableStr := "" diff --git a/cmd/mailfull/cmd_users.go b/cmd/mailfull/cmd_users.go index 2dc0cda..66d5741 100644 --- a/cmd/mailfull/cmd_users.go +++ b/cmd/mailfull/cmd_users.go @@ -57,7 +57,7 @@ func (c *CmdUsers) Run(args []string) int { c.Meta.Errorf("%v\n", err) return 1 } - sort.Sort(mailfull.UserSlice(users)) + sort.Slice(users, func(i, j int) bool { return users[i].Name() < users[j].Name() }) for _, user := range users { fmt.Fprintf(c.UI.Writer, "%s\n", user.Name()) diff --git a/database.go b/database.go index e12cf5c..4383e82 100644 --- a/database.go +++ b/database.go @@ -11,12 +11,12 @@ import ( // GenerateDatabases generates databases from the MailData directory. func (r *Repository) GenerateDatabases(md *MailData) error { - sort.Sort(DomainSlice(md.Domains)) - sort.Sort(AliasDomainSlice(md.AliasDomains)) + sort.Slice(md.Domains, func(i, j int) bool { return md.Domains[i].Name() < md.Domains[j].Name() }) + sort.Slice(md.AliasDomains, func(i, j int) bool { return md.AliasDomains[i].Name() < md.AliasDomains[j].Name() }) for _, domain := range md.Domains { - sort.Sort(UserSlice(domain.Users)) - sort.Sort(AliasUserSlice(domain.AliasUsers)) + sort.Slice(domain.Users, func(i, j int) bool { return domain.Users[i].Name() < domain.Users[j].Name() }) + sort.Slice(domain.AliasUsers, func(i, j int) bool { return domain.AliasUsers[i].Name() < domain.AliasUsers[j].Name() }) } // Generate files diff --git a/domain.go b/domain.go index c0089d7..f5e5044 100644 --- a/domain.go +++ b/domain.go @@ -17,13 +17,6 @@ type Domain struct { CatchAllUser *CatchAllUser } -// DomainSlice attaches the methods of sort.Interface to []*Domain. -type DomainSlice []*Domain - -func (p DomainSlice) Len() int { return len(p) } -func (p DomainSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p DomainSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewDomain creates a new Domain instance. func NewDomain(name string) (*Domain, error) { d := &Domain{} diff --git a/user.go b/user.go index cdf3bec..c502cb8 100644 --- a/user.go +++ b/user.go @@ -19,13 +19,6 @@ type User struct { forwards []string } -// UserSlice attaches the methods of sort.Interface to []*User. -type UserSlice []*User - -func (p UserSlice) Len() int { return len(p) } -func (p UserSlice) Less(i, j int) bool { return p[i].Name() < p[j].Name() } -func (p UserSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } - // NewUser creates a new User instance. func NewUser(name, hashedPassword string, forwards []string) (*User, error) { u := &User{}