lev0.go 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. // package lev0 -- сущности уровня 0
  2. package lev0
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/core_spec"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  7. )
  8. // ATxt -- внутренее представление текста.
  9. type ATxt = defs.ATxt
  10. // Bool -- внутренее представление логического значения.
  11. type Bool = defs.Bool
  12. // LBool -- неизменяемое булево значение.
  13. type LBool = defs.LBool
  14. // LetBool -- возвращает новое внутреннее логическое значение.
  15. func LetBool(val Bool) *LBool {
  16. return defs.LetBool(val)
  17. }
  18. // MBool -- изменяемое булево значение.
  19. type MBool = defs.MBool
  20. // MutBool -- возвращает новый изменяемый Bool.
  21. func MutBool(val Bool) *MBool {
  22. return defs.MutBool(val)
  23. }
  24. // Time -- внутреннее время.
  25. type Time = defs.Time
  26. // LTime -- внутренее неизменяемое время.
  27. //
  28. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  29. type LTime = defs.LTime
  30. // LetTimeAuto -- возвращает новое автоматическое внутреннее неизменяемое время.
  31. //
  32. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  33. func LetTimeAuto() *LTime {
  34. return defs.LetTimeAuto()
  35. }
  36. // MTime -- внутренее изменяемое время.
  37. //
  38. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  39. type MTime = defs.MTime
  40. func MutTimeAuto() *MTime {
  41. return defs.MutTimeAuto()
  42. }
  43. // Int -- внутренне представление числа.
  44. type Int = defs.Int
  45. // LInt -- внутренне неизменяемое целое.
  46. type LInt = defs.LInt
  47. // LetInt -- возвращает новое внутреннее неизменяемое целое.
  48. func LetInt(val Int) *LInt {
  49. return defs.LetInt(val)
  50. }
  51. // MInt -- внутреннее изменяемое целое.
  52. type MInt=defs.MInt
  53. // IntConstraint -- ограничение внутреннего целого.
  54. type IntConstraint = defs.IntConstraint
  55. // MutInt -- возвращает новое внутреннее изменяемое целое.
  56. func MutInt[T IntConstraint](val T) *MInt {
  57. return defs.MutInt(val)
  58. }
  59. // LetInt -- возвращает новое внутреннее неизменяемое целое.
  60. // TxtConstraint -- разрешает строки и любые типы на его основе (например, ATxt).
  61. type TxtConstraint = defs.TxtConstraint
  62. // LTxt -- внутренний неизменяемый текст.
  63. type LTxt = defs.LTxt
  64. // LetTxt -- создать новую неизменяемую строку.
  65. func LetTxt[T TxtConstraint](msgFormat T, arg ...any) *LTxt {
  66. return defs.LetTxt(msgFormat, arg...)
  67. }
  68. // MTxt -- внутренний изменяемый текст.
  69. type MTxt = defs.MTxt
  70. // MutTxt -- создать новую изменяемую строку.
  71. func MutTxt[T TxtConstraint](msgFormat T, arg ...any) *MTxt {
  72. return defs.MutTxt(msgFormat, arg...)
  73. }
  74. // Result — обёртка вокруг результата с возможной ошибкой.
  75. type Result[T any] = defs.Result[T]
  76. // ResOk -- возвращает успешный Result с значением.
  77. func ResOk[T any](res T) *Result[T] {
  78. return defs.ResOk(res)
  79. }
  80. // ResErr -- возвращает Result с ошибкой.
  81. func ResErr[T any](err error) *Result[T] {
  82. return defs.ResErr[T](err)
  83. }
  84. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  85. func WrapErr[T any](res *Result[T], err error) *Result[T] {
  86. return defs.WrapErr(res, err)
  87. }
  88. // Option — обёртка вокруг результата с возможной пустотой.
  89. type Option[T any] = defs.Option[T]
  90. // NewSome -- возвращает новый не пустой результат операции.
  91. func NewSome[T any](some T) *Option[T] {
  92. return defs.NewSome(some)
  93. }
  94. // NewNone -- возвращает новый пустой результат операции.
  95. func NewNone[T any]() *Option[T] {
  96. return defs.NewNone[T]()
  97. }
  98. // AssertAction -- хранит состояние для проверки.
  99. type AssertAction[T ~bool] = helpers.AssertAction[T]
  100. // If -- условие для проверки.
  101. func If[T ~bool](isOk T) *AssertAction[T] {
  102. return helpers.If(isOk)
  103. }
  104. // SleepMs -- задержка в миллисекундах.
  105. func SleepMs() {
  106. helpers.SleepMs()
  107. }
  108. // LErr -- внутренняя неизменяемая ошибка.
  109. type LErr = defs.LErr
  110. // LetErr -- создать новую обёрнутую ошибку.
  111. func LetErr[T TxtConstraint](msg T, arg ...any) *LErr {
  112. return defs.LetErr(msg, arg...)
  113. }
  114. // ISafeBool -- интерфейс к потокобезопасной переменной.
  115. type ISafeBool = core_spec.ISafeBool
  116. // IChan -- умный канал.
  117. type IChan[T any] = core_spec.IChan[T]
  118. // ISafeBoolReact -- реактивный потокобезопасный булевый признак.
  119. type ISafeBoolReact = core_spec.ISafeBoolReact
  120. type IRWMutex = core_spec.IRWMutex
  121. // Sprintf -- форматирует строку с помощью fmt.Sprintf.
  122. func Sprintf[T TxtConstraint](val T, arg ...any) ATxt {
  123. return defs.Sprintf(val, arg...)
  124. }
  125. // BucketName -- имя сущности.
  126. type BucketName=defs.BucketName
  127. // Atoi -- возвращает возможное число.
  128. func Atoi(val ATxt)*Result[Int]{
  129. return defs.Atoi(val)
  130. }