def_spec.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // package def_spec -- внутренние спецификации типы
  2. package def_spec
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_fn"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
  7. )
  8. // ATxt -- алиас для внутренней строки.
  9. type ATxt = def_spec_base.ATxt
  10. // Int -- алиас для int.
  11. type Int = def_spec_base.Int
  12. // Bool -- внутренее представление логического значения.
  13. type Bool = def_spec_base.Bool
  14. // IString -- интерфейс к стандартной строке.
  15. type IString = def_spec_fn.IString
  16. // TxtConstraint -- разрешает строки и любые типы на его основе (например, ATxt).
  17. type TxtConstraint = def_spec_fn.TxtConstraint
  18. // Result — обёртка вокруг результата с возможной ошибкой.
  19. //
  20. // Может быть либо только полезное значение, либо только ошибка.
  21. type Result[T any]=result.Result[T]
  22. // NewOk -- возвращает успешный Result с значением.
  23. func NewOk[T any](value T) *Result[T] {
  24. return result.NewOk(value)
  25. }
  26. // NewErr -- возвращает Result с ошибкой.
  27. func NewErr[T any](err error) *Result[T] {
  28. return result.NewErr[T](err)
  29. }
  30. // Sprintf -- форматирует базовуб строку
  31. func Sprintf[T def_spec_fn.TxtConstraint](format T, args ...any) ATxt {
  32. return def_spec_fn.Sprintf(format, args...)
  33. }