| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // 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)
- }
|