ErrBadUTF8 = errors.New("invalid UTF-8")
ErrBadInt = errors.New("bad int value")
ErrBadMagic = errors.New("bad magic value")
+ ErrTaiReserved = errors.New("reserved TAI64 values in use")
+ ErrTaiNonMinimal = errors.New("non-minimal TAI64")
+ ErrTooManyNsecs = errors.New("too many nanoseconds")
+ ErrTooManyAsecs = errors.New("too many attoseconds")
)
func (ctx *Decoder) DecodeAtom() (t types.Type, err error) {
return
}
if be.Get([]byte(s)[:8]) > (1 << 63) {
- err = errors.New("reserved TAI64 values in use")
+ err = ErrTaiReserved
return
}
if l > 8 {
nsecs := be.Get([]byte(s)[8 : 8+4])
if l == 12 && nsecs == 0 {
- err = errors.New("non-minimal TAI64N")
+ err = ErrTaiNonMinimal
return
}
if nsecs > 999999999 {
- err = errors.New("too many nanoseconds")
+ err = ErrTooManyNsecs
return
}
}
if l > 12 {
asecs := be.Get([]byte(s)[8+4 : 8+4+4])
if asecs == 0 {
- err = errors.New("non-minimal TAI64NA")
+ err = ErrTaiNonMinimal
return
}
if asecs > 999999999 {
- err = errors.New("too many attoseconds")
+ err = ErrTooManyAsecs
return
}
}