func UIDNotFound(uid uint32) error {
	return &NotFoundError{
		hasDetails:     true,
		entityName:     "user",
		identifierName: "UID",
		identifier:     uid,
	}
}
UIDNotFound returns a NotFoundError for a missing user searched by UID.
package accounts
import "fmt"
type User struct {
	Name          string
	UID           uint32
	GID           uint32
	Gecos         string
	HomeDirectory string
	Shell         string
}
type Group struct {
	Name    string
	GID     uint32
	Members []string
}
type AccountProvider interface {
	UserByName(name string) (*User, error)
	UserByUID(uid uint32) (*User, error)
	Users() ([]*User, error)
	GroupByName(name string) (*Group, error)
	GroupByGID(gid uint32) (*Group, error)
	Groups() ([]*Group, error)
	Names() ([]string, error)
	IsName(name string) (bool, error)
	AuthorizedKeys(username string) ([]string, error)
}
type NotFoundError struct {
	hasDetails     bool
	entityName     string
	identifierName string
	identifier     interface{}
}
func (e *NotFoundError) Error() string {
	if !e.hasDetails {
		return "unable to find user or group"
	}
	return fmt.Sprintf("unable to find %v with %v %v", e.entityName, e.identifierName, e.identifier)
}
func UsernameNotFound(name string) error {
	return &NotFoundError{
		hasDetails:     true,
		entityName:     "user",
		identifierName: "name",
		identifier:     fmt.Sprintf("\"%v\"", name),
	}
}