// package defs -- предметные типы ядра. package defs import ( "fmt" ) // "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/stream_name" // Int -- алиас для int. type Int int // Int -- возвращает целое число по требованию. func (i Int) Int() int { return int(i) } // ITxtFix --интерфейс к гибкой строке. type ITxtFix interface { // Get -- возвращает внутреннюю строку Get() ATxt // String -- возвращает строку String() string // Len -- возвращает длину внутренней строки Len() Int // Byte -- возвращает внутреннюю строку в виде байтов. Byte() []byte // Rune -- возвращает внутреннюю строку в виде рун. Rune() []rune } // ATxt -- алиас для внутренней строки. type ATxt string // Txt -- создать новую строку. func Txt(msg ATxt, arg ...any) ATxt { return ATxt(fmt.Sprintf(msg.String(), arg...)) } // ToTxt -- создать новую строку. func ToTxt(msg ATxt) ITxtFix { return msg } // Rune -- возвращает внутреннюю строку в виде рун. func (s ATxt) Rune() []rune { return []rune(s) } // Byte -- возвращает внутреннюю строку в виде байтов. // func (s ATxt) Byte() []byte { return []byte(s) } // Len -- возвращает длину строки. // func (s ATxt) Len() Int { return Int(len(s)) } // Get -- возвращает внутреннюю строку. func (s ATxt) Get() ATxt { return s } // String -- возвращает строку по требованию. // func (s ATxt) String() string { return string(s) } // IErr -- алиас для error. type IErr interface { error ITxtFix // IsErr -- возвращает true, если ошибка. IsErr() bool } // Err -- обёрнутая ошибка. type Err struct { err error } // NewErr -- создать новую обёрнутую ошибку. func NewErr(msg ATxt, arg ...any) IErr { err := fmt.Errorf(msg.String(), arg...) return &Err{err} } // WrapErr -- возвращает обёрнутую ошибку. // func WrapErr(err error) IErr { return &Err{err} } // Rune -- возвращает внутреннюю строку в виде рун. // func (e *Err) Rune() []rune { return []rune(e.err.Error()) } // Byte -- возвращает байты из ошибки func (e *Err) Byte() []byte { return []byte(e.err.Error()) } // IsErr -- возвращает true, если ошибка. func (e *Err) IsErr() bool { return e.err != nil } // String -- возвращает строковое представление ошибки. func (e *Err) String() string { return e.err.Error() } // Error -- возвращает хранимую ошибку. func (e *Err) Error() string { return e.err.Error() } // Get -- возвращает строку по требованию для ошибки. func (e *Err) Get() ATxt { return ATxt(e.err.Error()) } // Len -- возвращает длину ошибки. func (e *Err) Len() Int { return Int(len(e.err.Error())) } // Time -- метка времени. // Вывод: "2006-01-02 15:04:05.000 -07 MST". type Time ATxt // BucketName -- имя сущности. type BucketName ATxt // StreamName -- имя потока для ожидания. // type StreamName = stream_name.AStreamName // NewStreamName -- создать новое имя потока. // func NewStreamName(val Str) *stream_name.AStreamName { // return stream_name.NewAStreamName(val) // }