// package def_num -- внутреннее число package def_num import ( "encoding/binary" "fmt" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_fn" ) // LNum -- внутренне неизменяемое число. type LNum struct { val def_spec_base.Num } // LetNum -- возвращает новое внутреннее неизменяемое число. func LetNum[T def_spec_base.NumConstraint](val T) *LNum { sf := &LNum{ val: def_spec_base.Num(val), } return sf } // Get -- возвращает хранимое значение числа. func (sf *LNum) Get() def_spec_base.Num { return sf.val } // Txt -- возвращает как текст. func (sf *LNum) Txt() def_spec_base.Txt { return def_spec_fn.Sprintf("%v", sf.val) } // ToByte -- возвращает как срез байт. func (sf *LNum) ToByte() []byte { buf := make([]byte, 8) binary.BigEndian.PutUint64(buf, uint64(sf.val)) return buf } // Int -- возвращает целое func (sf *LNum) Int() int { return int(sf.val) } // Num -- возвращает как число func (sf *LNum) Num() def_spec_base.Num { return sf.val } // String -- возвращает строку func (sf *LNum) String() string { return fmt.Sprintf("%v", sf.val) }