github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/examples/gno.land/p/demo/uint256/error.gno (about) 1 package uint256 2 3 import ( 4 "errors" 5 ) 6 7 var ( 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 21 type u256Error struct { 22 fn string // function name 23 input string 24 err error 25 } 26 27 func (e *u256Error) Error() string { 28 return e.fn + ": " + e.input + ": " + e.err.Error() 29 } 30 31 func (e *u256Error) Unwrap() error { 32 return e.err 33 } 34 35 func errEmptyString(fn, input string) error { 36 return &u256Error{fn: fn, input: input, err: ErrEmptyString} 37 } 38 39 func errSyntax(fn, input string) error { 40 return &u256Error{fn: fn, input: input, err: ErrSyntax} 41 } 42 43 func errMissingPrefix(fn, input string) error { 44 return &u256Error{fn: fn, input: input, err: ErrMissingPrefix} 45 } 46 47 func errEmptyNumber(fn, input string) error { 48 return &u256Error{fn: fn, input: input, err: ErrEmptyNumber} 49 } 50 51 func errLeadingZero(fn, input string) error { 52 return &u256Error{fn: fn, input: input, err: ErrLeadingZero} 53 } 54 55 func errRange(fn, input string) error { 56 return &u256Error{fn: fn, input: input, err: ErrRange} 57 } 58 59 func errBig256Range(fn, input string) error { 60 return &u256Error{fn: fn, input: input, err: ErrBig256Range} 61 } 62 63 func errBadBufferLength(fn, input string) error { 64 return &u256Error{fn: fn, input: input, err: ErrBadBufferLength} 65 } 66 67 func errInvalidBase(fn string, base int) error { 68 return &u256Error{fn: fn, input: string(base), err: ErrInvalidBase} 69 } 70 71 func errInvalidBitSize(fn string, bitSize int) error { 72 return &u256Error{fn: fn, input: string(bitSize), err: ErrInvalidBitSize} 73 }