error.gno

2.01 Kb ยท 73 lines
 1package uint256
 2
 3import (
 4	"errors"
 5)
 6
 7var (
 8	ErrEmptyString      = errors.New("empty hex string")
 9	ErrSyntax           = errors.New("invalid hex string")
10	ErrRange            = errors.New("number out of range")
11	ErrMissingPrefix    = errors.New("hex string without 0x prefix")
12	ErrEmptyNumber      = errors.New("hex string \"0x\"")
13	ErrLeadingZero      = errors.New("hex number with leading zero digits")
14	ErrBig256Range      = errors.New("hex number > 256 bits")
15	ErrBadBufferLength  = errors.New("bad ssz buffer length")
16	ErrBadEncodedLength = errors.New("bad ssz encoded length")
17	ErrInvalidBase      = errors.New("invalid base")
18	ErrInvalidBitSize   = errors.New("invalid bit size")
19)
20
21type u256Error struct {
22	fn    string // function name
23	input string
24	err   error
25}
26
27func (e *u256Error) Error() string {
28	return e.fn + ": " + e.input + ": " + e.err.Error()
29}
30
31func (e *u256Error) Unwrap() error {
32	return e.err
33}
34
35func errEmptyString(fn, input string) error {
36	return &u256Error{fn: fn, input: input, err: ErrEmptyString}
37}
38
39func errSyntax(fn, input string) error {
40	return &u256Error{fn: fn, input: input, err: ErrSyntax}
41}
42
43func errMissingPrefix(fn, input string) error {
44	return &u256Error{fn: fn, input: input, err: ErrMissingPrefix}
45}
46
47func errEmptyNumber(fn, input string) error {
48	return &u256Error{fn: fn, input: input, err: ErrEmptyNumber}
49}
50
51func errLeadingZero(fn, input string) error {
52	return &u256Error{fn: fn, input: input, err: ErrLeadingZero}
53}
54
55func errRange(fn, input string) error {
56	return &u256Error{fn: fn, input: input, err: ErrRange}
57}
58
59func errBig256Range(fn, input string) error {
60	return &u256Error{fn: fn, input: input, err: ErrBig256Range}
61}
62
63func errBadBufferLength(fn, input string) error {
64	return &u256Error{fn: fn, input: input, err: ErrBadBufferLength}
65}
66
67func errInvalidBase(fn string, base int) error {
68	return &u256Error{fn: fn, input: string(base), err: ErrInvalidBase}
69}
70
71func errInvalidBitSize(fn string, bitSize int) error {
72	return &u256Error{fn: fn, input: string(bitSize), err: ErrInvalidBitSize}
73}