2019-08-11 15:08:03 +03:00
package entity
2019-08-12 17:12:14 +03:00
import (
"fmt"
"strings"
)
type ErrMultipleMatch struct {
entityType string
Matching [ ] Id
}
func NewErrMultipleMatch ( entityType string , matching [ ] Id ) * ErrMultipleMatch {
return & ErrMultipleMatch { entityType : entityType , Matching : matching }
}
func ( e ErrMultipleMatch ) Error ( ) string {
matching := make ( [ ] string , len ( e . Matching ) )
for i , match := range e . Matching {
matching [ i ] = match . String ( )
}
return fmt . Sprintf ( "Multiple matching %s found:\n%s" ,
e . entityType ,
strings . Join ( matching , "\n" ) )
}
2019-12-08 23:15:06 +03:00
func IsErrMultipleMatch ( err error ) bool {
_ , ok := err . ( * ErrMultipleMatch )
return ok
}
2020-12-10 16:12:45 +03:00
2020-12-21 13:04:17 +03:00
type ErrInvalidFormat struct {
version uint
expected uint
2020-12-10 16:12:45 +03:00
}
2020-12-21 13:04:17 +03:00
func NewErrInvalidFormat ( version uint , expected uint ) * ErrInvalidFormat {
return & ErrInvalidFormat {
version : version ,
expected : expected ,
}
2020-12-10 16:12:45 +03:00
}
2020-12-21 13:04:17 +03:00
func NewErrUnknowFormat ( expected uint ) * ErrInvalidFormat {
return & ErrInvalidFormat {
version : 0 ,
expected : expected ,
}
2020-12-10 16:12:45 +03:00
}
2020-12-21 13:04:17 +03:00
func ( e ErrInvalidFormat ) Error ( ) string {
if e . version == 0 {
return fmt . Sprintf ( "unreadable data, expected format version %v" , e . expected )
}
if e . version < e . expected {
return fmt . Sprintf ( "outdated repository format %v, please use https://github.com/MichaelMure/git-bug-migration to upgrade to format version %v" , e . version , e . expected )
}
return fmt . Sprintf ( "your version of git-bug is too old for this repository (format version %v, expected %v), please upgrade to the latest version" , e . version , e . expected )
2020-12-10 16:12:45 +03:00
}