lev0.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // package lev0 -- сущности уровня 0
  2. package lev0
  3. import (
  4. "time"
  5. mKs "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  9. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/option"
  10. mRes "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
  11. )
  12. // ETime -- расширенное время.
  13. type ETime = mKs.ITime
  14. // EStr -- расширенная строка.
  15. type EStr = mKs.EStr
  16. // Result — обёртка вокруг результата с возможной ошибкой.
  17. type IResult[T any] = def_spec.IResult[T]
  18. // NewOk -- возвращает успешный Result с значением.
  19. func NewOk[T any](res T) IResult[T] {
  20. return mRes.NewOk(res)
  21. }
  22. // NewErr -- возвращает Result с ошибкой.
  23. func NewErr[T any](err defs.IErr) IResult[T] {
  24. return mRes.NewErr[T](err)
  25. }
  26. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  27. func WrapErr[T any](res IResult[T], err defs.IErr) IResult[T] {
  28. return mRes.WrapErr(res, err)
  29. }
  30. // IOption — обёртка вокруг результата с возможной пустотой.
  31. type IOption[T any] = mKs.IOption[T]
  32. // NewSome -- возвращает новый не пустой результат операции.
  33. func NewSome[T any](some T) IOption[T] {
  34. return option.NewSome(some)
  35. }
  36. // NewNone -- возвращает новый пустой результат операции.
  37. func NewNone[T any]() IOption[T] {
  38. return option.NewNone[T]()
  39. }
  40. // FnIf -- проверяет с жёстким падением условие.
  41. type FnIf = helpers.FnIf
  42. // SleepMs -- задержка в миллисекундах.
  43. func SleepMs() {
  44. time.Sleep(time.Millisecond * 1)
  45. }