lev0.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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/helpers"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/option"
  8. mRes "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
  9. )
  10. // ETime -- расширенное время.
  11. type ETime = mKs.ITime
  12. // EStr -- расширенная строка.
  13. type EStr = mKs.EStr
  14. // Result — обёртка вокруг результата с возможной ошибкой.
  15. type IResult[T any] = mKs.IResult[T]
  16. // NewOk -- возвращает успешный Result с значением.
  17. func NewOk[T any](res T) IResult[T] {
  18. return mRes.NewOk(res)
  19. }
  20. // NewErr -- возвращает Result с ошибкой.
  21. func NewErr[T any](err error) IResult[T] {
  22. return mRes.NewErr[T](err)
  23. }
  24. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  25. func WrapErr[T any](res IResult[T], err error) IResult[T] {
  26. return mRes.WrapErr(res, err)
  27. }
  28. // IOption — обёртка вокруг результата с возможной пустотой.
  29. type IOption[T any] = mKs.IOption[T]
  30. // NewSome -- возвращает новый не пустой результат операции.
  31. func NewSome[T any](some T) IOption[T] {
  32. return option.NewSome(some)
  33. }
  34. // NewNone -- возвращает новый пустой результат операции.
  35. func NewNone[T any]() IOption[T] {
  36. return option.NewNone[T]()
  37. }
  38. // Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert).
  39. //
  40. //go:fix inline
  41. func Hassert(isCond bool, msgFormat string, args ...any) {
  42. helpers.Hassert(isCond, msgFormat, args)
  43. }
  44. // Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
  45. //
  46. //go:fix inline
  47. func Assert(isCond bool, msgFormat string, args ...any) {
  48. helpers.Assert(isCond, msgFormat, args)
  49. }
  50. // SleepMs -- задержка в миллисекундах.
  51. //
  52. //go:fix inline
  53. func SleepMs() {
  54. time.Sleep(time.Millisecond * 1)
  55. }