mirror of
https://github.com/Luzifer/password.git
synced 2024-11-14 04:02:46 +00:00
72 lines
1.8 KiB
Go
72 lines
1.8 KiB
Go
// Copyright 2010 Jonas mg
|
|
//
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
package user
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strconv"
|
|
)
|
|
|
|
var (
|
|
ErrUserExist = errors.New("user already exists")
|
|
ErrGroupExist = errors.New("group already exists")
|
|
)
|
|
|
|
// IsExist returns whether the error is known to report that an user or group
|
|
// already exists. It is satisfied by ErrUserExist and ErrGroupExist.
|
|
func IsExist(err error) bool {
|
|
if err == ErrUserExist || err == ErrGroupExist {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// An IdUsedError reports the presence of an identifier already used.
|
|
type IdUsedError int
|
|
|
|
func (e IdUsedError) Error() string { return "id used: " + strconv.Itoa(int(e)) }
|
|
|
|
// A NoFoundError reports the absence of a value.
|
|
type NoFoundError struct {
|
|
file string
|
|
field string
|
|
value interface{}
|
|
}
|
|
|
|
func (e NoFoundError) Error() string {
|
|
return fmt.Sprintf("entry \"%v\" not found: file '%s', field %q",
|
|
e.value, e.file, e.field)
|
|
}
|
|
|
|
// A RequiredError reports the name of a required field.
|
|
type RequiredError string
|
|
|
|
func (e RequiredError) Error() string { return "required field: " + string(e) }
|
|
|
|
// An atoiError records the file, row and field that caused the error at turning
|
|
// a field from string to int.
|
|
type atoiError struct {
|
|
file string
|
|
row string
|
|
field string
|
|
}
|
|
|
|
func (e atoiError) Error() string {
|
|
return fmt.Sprintf("field %q on '%s' could not be turned to int\n%s",
|
|
e.field, e.file, e.row)
|
|
}
|
|
|
|
// A rowError records the file and row for a format not valid.
|
|
type rowError struct {
|
|
file string
|
|
row string
|
|
}
|
|
|
|
func (e rowError) Error() string {
|
|
return fmt.Sprintf("format of row not valid on '%s'\n%s", e.file, e.row)
|
|
}
|