lev0.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // package lev0 -- сущности уровня 0
  2. package lev0
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/option"
  6. mRes "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
  7. )
  8. // Result — обёртка вокруг результата с возможной ошибкой.
  9. type Result[T any] = mRes.Result[T]
  10. // NewRes -- возвращает успешный Result с значением.
  11. func NewRes[T any](res T) *Result[T] {
  12. return mRes.NewRes(res)
  13. }
  14. // NewErr -- возвращает Result с ошибкой.
  15. func NewErr[T any](err error) *Result[T] {
  16. return mRes.NewErr[T](err)
  17. }
  18. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  19. func WrapErr[T any](res *Result[T], err error) *Result[T] {
  20. return mRes.WrapErr(res, err)
  21. }
  22. // Option — обёртка вокруг результата с возможной пустотой.
  23. type Option[T any] = option.Option[T]
  24. // NewOpt -- возвращает новый не пустой результат операции.
  25. func NewOpt[T any](some T) *Option[T] {
  26. return option.NewOpt(some)
  27. }
  28. // NewNone -- возвращает новый пустой результат операции.
  29. func NewNone[T any]() *option.Option[T] {
  30. return option.NewNone[T]()
  31. }
  32. // Hassert -- проверка на правильность утверждения с безусловным падением в панику (hard assert).
  33. func Hassert(isCond bool, msgFormat string, args ...any) {
  34. helpers.Hassert(isCond, msgFormat, args)
  35. }
  36. // Assert -- проверка на правильность утверждения с падением в панику на локальном стенде (soft assert).
  37. func Assert(isCond bool, msgFormat string, args ...any) {
  38. helpers.Assert(isCond, msgFormat, args)
  39. }