// 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) } // IStr --интерфейс к гибкой строке type IStr interface { // Str -- возвращает внутреннюю строку Str() Str // String -- возвращает прямую строку String()string } // Str -- алиас для string. type Str string // NewStr -- создать новую строку. func NewStr(msg string, arg ...any) IStr { return Str(fmt.Sprintf(msg, arg...)) } // Str -- возвращает внутреннюю строку. func (s Str) Str() Str { return s } // String -- возвращает строку по требованию. func (s Str) String() string { return string(s) } // IErr -- алиас для error. type IErr interface { error IStr } // Err -- обёрнутая ошибка. type Err struct { err error } // NewErr -- создать новую обёрнутую ошибку. func NewErr(msg Str, arg ...any) IErr { err := fmt.Errorf(msg.String(), arg...) return &Err{err} } // WrapErr -- возвращает обёрнутую ошибку. func WrapErr(err error) IErr { return &Err{err} } // String -- возвращает строковое представление ошибки. func (e *Err) String() string { return e.err.Error() } // Error -- возвращает хранимую ошибку. func (e *Err) Error() string { return e.err.Error() } // Str -- возвращает строку по требованию для ошибки. func (e *Err) Str() Str { return Str(e.err.Error()) } // Time -- метка времени. // Вывод: "2006-01-02 15:04:05.000 -07 MST". type Time Str // BucketName -- имя сущности. type BucketName Str // StreamName -- имя потока для ожидания. // //go:fix inline // type StreamName = stream_name.AStreamName // NewStreamName -- создать новое имя потока. // //go:fix inline // func NewStreamName(val Str) *stream_name.AStreamName { // return stream_name.NewAStreamName(val) // }