lev0.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. // package lev0 -- сущности уровня 0
  2. package lev0
  3. import (
  4. "time"
  5. mKs "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
  6. mEt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/etypes"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/option"
  9. mRes "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
  10. )
  11. // ETime -- расширенное время.
  12. type ETime = mKs.ITime
  13. // EStr -- расширенная строка.
  14. type EStr = mKs.EStr
  15. // EStrMut -- расширенная строка с признаком мутабельности.
  16. type EStrMut = mKs.EStrMut
  17. // FnOptStr -- опция для установки параметров расширенной строки.
  18. type FnOptStr = mEt.FnOptStr
  19. // OptStr -- устанавливает начальное значение строки.
  20. func OptStr(val string) FnOptStr {
  21. return mEt.OptStr(val)
  22. }
  23. // OptStrMut -- устанавливает признак мутабельности.
  24. func OptStrMut() FnOptStr {
  25. return mEt.OptStrMut()
  26. }
  27. // OptStrMinLen -- устанавливает минимальную длину строки.
  28. func OptStrMinLen(lenMin int) FnOptStr {
  29. return mEt.OptStrMinLen(lenMin)
  30. }
  31. // OptStrMaxLen -- устанавливает максимальную длину строки.
  32. func OptStrMaxLen(lenMax int) FnOptStr {
  33. return mEt.OptStrMaxLen(lenMax)
  34. }
  35. // StrNew -- возвращает новую строку KStr.
  36. func StrNew(opt ...FnOptStr) EStr {
  37. return mEt.StrNew(opt...)
  38. }
  39. // StrMutNew -- возвращает новую строку KStrMut.
  40. func StrMutNew(opt ...FnOptStr) EStrMut {
  41. return mEt.StrMutNew(opt...)
  42. }
  43. // Result — обёртка вокруг результата с возможной ошибкой.
  44. type IResult[T any] = mKs.IResult[T]
  45. // NewOk -- возвращает успешный Result с значением.
  46. func NewOk[T any](res T) IResult[T] {
  47. return mRes.NewOk(res)
  48. }
  49. // NewErr -- возвращает Result с ошибкой.
  50. func NewErr[T any](err error) IResult[T] {
  51. return mRes.NewErr[T](err)
  52. }
  53. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  54. func WrapErr[T any](res IResult[T], err error) IResult[T] {
  55. return mRes.WrapErr(res, err)
  56. }
  57. // IOption — обёртка вокруг результата с возможной пустотой.
  58. type IOption[T any] = mKs.IOption[T]
  59. // NewSome -- возвращает новый не пустой результат операции.
  60. func NewSome[T any](some T) IOption[T] {
  61. return option.NewSome(some)
  62. }
  63. // NewNone -- возвращает новый пустой результат операции.
  64. func NewNone[T any]() IOption[T] {
  65. return option.NewNone[T]()
  66. }
  67. // Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert).
  68. //
  69. //go:fix inline
  70. func Hassert(isCond bool, msgFormat string, args ...any) {
  71. helpers.Hassert(isCond, msgFormat, args)
  72. }
  73. // Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
  74. //
  75. //go:fix inline
  76. func Assert(isCond bool, msgFormat string, args ...any) {
  77. helpers.Assert(isCond, msgFormat, args)
  78. }
  79. // SleepMs -- задержка в миллисекундах.
  80. //
  81. //go:fix inline
  82. func SleepMs() {
  83. time.Sleep(time.Millisecond * 1)
  84. }