// package def_num -- базовый тип числа package def_num import ( "fmt" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_err" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result" ) // Num -- внутренне представление числа type Num struct { val def_spec.AInt } // NewNum -- возвращает целое число по требованию. func NewNum(val def_spec.AInt) *Num { sf := &Num{ val: val, } return sf } // Get -- возвращает внутреннее число func (sf *Num) Get() def_spec.AInt { return sf.val } // Int -- возвращает число func (sf *Num) Int() int { return int(sf.val) } // Byte -- возвращает число как byte func (sf *Num) Byte() *def_spec.Result[byte] { if -128 <= sf.val && sf.val <= 127 { return result.NewOk(byte(sf.val)) } err := def_err.Err("Num.Byte(). val(%v) not in -128..127", sf.val) return result.NewErr[byte](err) } // String -- возвращает строку func (sf *Num) String() string { return fmt.Sprintf("%v", sf.Get()) }