|
|
@@ -2,201 +2,34 @@
|
|
|
package defs
|
|
|
|
|
|
import (
|
|
|
- "fmt"
|
|
|
- "strings"
|
|
|
+ "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/defs/def_txt"
|
|
|
)
|
|
|
|
|
|
-// "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/stream_name"
|
|
|
+// Int -- внутренне представление числа
|
|
|
+type Int = def_spec.Int
|
|
|
|
|
|
-// Int -- алиас для int.
|
|
|
-type Int int
|
|
|
+// ATxt -- внутренее пресдатвление текста
|
|
|
+type ATxt = def_spec.ATxt
|
|
|
|
|
|
-// 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
|
|
|
- // TrimSuffix -- обрезает суффикс строки
|
|
|
- TrimSuffix(any) ITxtFix
|
|
|
- // Concat -- объединяет строки
|
|
|
- Concat(msg any, arg ...any) ITxtFix
|
|
|
-}
|
|
|
-
|
|
|
-// ITxtMut -- интерфейс к изменяемой внутренней строке.
|
|
|
-type ITxtMut interface {
|
|
|
- ITxtFix
|
|
|
- // Set -- устанавливает внутреннюю строку
|
|
|
- Set(ATxt)
|
|
|
-}
|
|
|
-
|
|
|
-// ATxt -- алиас для внутренней строки.
|
|
|
-type ATxt string
|
|
|
-
|
|
|
-// KTxt -- алиас для внутренней строки.
|
|
|
-type KTxt struct {
|
|
|
- val ATxt
|
|
|
-}
|
|
|
-
|
|
|
-// TxtConstraint -- разрешает string и любые типы на его основе (например, ATxt).
|
|
|
-type TxtConstraint interface {
|
|
|
- ~string
|
|
|
-}
|
|
|
-
|
|
|
-// Txt -- создать новую строку.
|
|
|
-func Txt[T TxtConstraint](msg T, arg ...any) *KTxt {
|
|
|
- _msg := fmt.Sprintf(string(msg), arg...)
|
|
|
- sf := &KTxt{
|
|
|
- val: ATxt(_msg),
|
|
|
- }
|
|
|
- return sf
|
|
|
-}
|
|
|
-
|
|
|
-// TxtFix -- создать новую строку.
|
|
|
-func TxtFix[T TxtConstraint](msg T, arg ...any) ITxtFix {
|
|
|
- sf := Txt(msg, arg...)
|
|
|
- return sf
|
|
|
-}
|
|
|
-
|
|
|
-// TxtMut -- создать новую мутабельную строку.
|
|
|
-func TxtMut[T TxtConstraint](msg T, arg ...any) ITxtMut {
|
|
|
- _msg := fmt.Sprintf(string(msg), arg...)
|
|
|
- sf := &KTxt{
|
|
|
- val: ATxt(_msg),
|
|
|
- }
|
|
|
- return sf
|
|
|
-}
|
|
|
-
|
|
|
-// Get -- возвращает внутреннюю строку.
|
|
|
-func (sf KTxt) Get() ATxt {
|
|
|
- return sf.val
|
|
|
-}
|
|
|
+// ITxtFix -- внутренне представление строки
|
|
|
+type ITxtFix = def_spec.ITxtFix
|
|
|
|
|
|
-// Concat -- создать новую строку.
|
|
|
-func (sf *KTxt) Concat(msg any, arg ...any) ITxtFix {
|
|
|
- val := fmt.Sprintf("%v", msg)
|
|
|
- val = fmt.Sprintf(val, arg...)
|
|
|
- _msg := string(sf.val) + val
|
|
|
- sf.val = ATxt(_msg)
|
|
|
+// TxtFix -- возвращает новый внутренний текст
|
|
|
+func TxtFix[T def_spec.TxtConstraint](msg T, arg ...any) ITxtFix {
|
|
|
+ sf := def_txt.Txt(msg, arg...)
|
|
|
return sf
|
|
|
}
|
|
|
|
|
|
-// TrimSuffix -- обрезает суффикс строки.
|
|
|
-func (sf *KTxt) TrimSuffix(suffix any) ITxtFix {
|
|
|
- suf := fmt.Sprintf("%v", suffix)
|
|
|
- txt := strings.TrimSuffix(string(sf.val), suf)
|
|
|
- return Txt(txt)
|
|
|
-}
|
|
|
-
|
|
|
-// Set -- изменение внутренней строки.
|
|
|
-func (sf *KTxt) Set(msg ATxt) {
|
|
|
- sf.val = msg
|
|
|
-}
|
|
|
|
|
|
-// Rune -- возвращает внутреннюю строку в виде рун.
|
|
|
-func (sf KTxt) Rune() []rune {
|
|
|
- return []rune(sf.val)
|
|
|
-}
|
|
|
|
|
|
-// Byte -- возвращает внутреннюю строку в виде байтов.
|
|
|
-func (sf KTxt) Byte() []byte {
|
|
|
- return []byte(sf.val)
|
|
|
-}
|
|
|
-
|
|
|
-// Len -- возвращает длину строки.
|
|
|
-func (sf KTxt) Len() Int {
|
|
|
- return Int(len(sf.val))
|
|
|
-}
|
|
|
-
|
|
|
-// String -- возвращает строку по требованию.
|
|
|
-func (sf KTxt) String() string {
|
|
|
- return string(sf.val)
|
|
|
-}
|
|
|
-
|
|
|
-// IErr -- алиас для error.
|
|
|
-type IErr interface {
|
|
|
- error
|
|
|
- ITxtFix
|
|
|
- // IsErr -- возвращает true, если ошибка.
|
|
|
- IsErr() bool
|
|
|
-}
|
|
|
-
|
|
|
-// KErr -- обёрнутая ошибка.
|
|
|
-type KErr struct {
|
|
|
- err error
|
|
|
-}
|
|
|
+// IErr -- внутренне представление ошибки
|
|
|
+type IErr = def_spec.IErr
|
|
|
|
|
|
// Err -- создать новую обёрнутую ошибку.
|
|
|
func Err(msg ATxt, arg ...any) IErr {
|
|
|
- err := fmt.Errorf(string(msg), arg...)
|
|
|
- return &KErr{err}
|
|
|
-}
|
|
|
-
|
|
|
-// WrapErr -- возвращает обёрнутую ошибку.
|
|
|
-func WrapErr(err error) IErr {
|
|
|
- return &KErr{err}
|
|
|
-}
|
|
|
-
|
|
|
-// TrimSuffix -- обрезает суффикс строки.
|
|
|
-func (e *KErr) TrimSuffix(suffix any) ITxtFix {
|
|
|
- suf := fmt.Sprintf("%v", suffix)
|
|
|
- txt := strings.TrimSuffix(e.err.Error(), suf)
|
|
|
- return Txt(txt)
|
|
|
-}
|
|
|
-
|
|
|
-// Rune -- возвращает внутреннюю строку в виде рун.
|
|
|
-func (e *KErr) Rune() []rune {
|
|
|
- return []rune(e.err.Error())
|
|
|
-}
|
|
|
-
|
|
|
-// Byte -- возвращает байты из ошибки.
|
|
|
-func (e *KErr) Byte() []byte {
|
|
|
- return []byte(e.err.Error())
|
|
|
-}
|
|
|
-
|
|
|
-// IsErr -- возвращает true, если ошибка.
|
|
|
-func (e *KErr) IsErr() bool {
|
|
|
- return e.err != nil
|
|
|
-}
|
|
|
-
|
|
|
-// String -- возвращает строковое представление ошибки.
|
|
|
-func (e *KErr) String() string {
|
|
|
- return e.err.Error()
|
|
|
-}
|
|
|
-
|
|
|
-// Error -- возвращает хранимую ошибку.
|
|
|
-func (e *KErr) Error() string {
|
|
|
- return e.err.Error()
|
|
|
-}
|
|
|
-
|
|
|
-// Get -- возвращает строку по требованию для ошибки.
|
|
|
-func (e *KErr) Get() ATxt {
|
|
|
- return ATxt(e.err.Error())
|
|
|
-}
|
|
|
-
|
|
|
-// Len -- возвращает длину ошибки.
|
|
|
-func (e *KErr) Len() Int {
|
|
|
- return Int(len(e.err.Error()))
|
|
|
-}
|
|
|
-
|
|
|
-// Concat -- создать новую строку.
|
|
|
-func (sf *KErr) Concat(msg any, arg ...any) ITxtFix {
|
|
|
- val := fmt.Sprintf("%v", msg)
|
|
|
- val = fmt.Sprintf(val, arg...)
|
|
|
- _msg := sf.err.Error() + val
|
|
|
- sf.err = fmt.Errorf("%v%v", sf.err.Error(), _msg)
|
|
|
- return sf
|
|
|
+ return def_err.Err(msg, arg...)
|
|
|
}
|
|
|
|
|
|
// ITimeFix -- метка времени.
|
|
|
@@ -204,7 +37,7 @@ func (sf *KErr) Concat(msg any, arg ...any) ITxtFix {
|
|
|
type ITimeFix ITxtFix
|
|
|
|
|
|
// BucketName -- имя сущности.
|
|
|
-type BucketName KTxt
|
|
|
+type BucketName ITxtFix
|
|
|
|
|
|
// StreamName -- имя потока для ожидания.
|
|
|
// type StreamName = stream_name.AStreamName
|