lev0.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. // package lev0 -- сущности уровня 0
  2. package lev0
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/safe_chan"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  7. )
  8. // Txt -- внутренее представление текста.
  9. type Txt = defs.Txt
  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. // Num -- внутренне представление числа.
  44. type Num = defs.Num
  45. // LNum -- внутреннее неизменяемое число.
  46. type LNum = defs.LNum
  47. // LetNum -- возвращает новое внутреннее неизменяемое число.
  48. func LetNum(val Num) *LNum {
  49. return defs.LetNum(val)
  50. }
  51. // MNum -- внутреннее изменяемое число.
  52. type MNum = defs.MNum
  53. // NumConstraint -- ограничение внутреннего целого.
  54. type NumConstraint = defs.NumConstraint
  55. // MutNum -- возвращает новое внутреннее изменяемое число.
  56. func MutNum[T NumConstraint](val T) *MNum {
  57. return defs.MutNum(val)
  58. }
  59. // TxtConstraint -- разрешает строки и любые типы на его основе (например, ATxt).
  60. type TxtConstraint = defs.TxtConstraint
  61. // LTxt -- внутренний неизменяемый текст.
  62. type LTxt = defs.LTxt
  63. // LetTxt -- создать новый неизменяемый текст.
  64. func LetTxt[T TxtConstraint](msgFormat T, arg ...any) *LTxt {
  65. return defs.LetTxt(msgFormat, arg...)
  66. }
  67. // MTxt -- внутренний изменяемый текст.
  68. type MTxt = defs.MTxt
  69. // MutTxt -- создать новый изменяемый текст.
  70. func MutTxt[T TxtConstraint](msgFormat T, arg ...any) *MTxt {
  71. return defs.MutTxt(msgFormat, arg...)
  72. }
  73. // Result — обёртка вокруг результата с возможной ошибкой.
  74. type Result[T any] = defs.Result[T]
  75. // ResOk -- возвращает успешный Result с значением.
  76. func ResOk[T any](res T) *Result[T] {
  77. return defs.ResOk(res)
  78. }
  79. // ResErr -- возвращает Result с ошибкой.
  80. func ResErr[T any](err error) *Result[T] {
  81. return defs.ResErr[T](err)
  82. }
  83. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  84. func WrapErr[T any](res *Result[T], err error) *Result[T] {
  85. return defs.WrapErr(res, err)
  86. }
  87. // Option — обёртка вокруг результата с возможной пустотой.
  88. type Option[T any] = defs.Option[T]
  89. // NewSome -- возвращает новый не пустой результат операции.
  90. func NewSome[T any](some T) *Option[T] {
  91. return defs.NewSome(some)
  92. }
  93. // NewNone -- возвращает новый пустой результат операции.
  94. func NewNone[T any]() *Option[T] {
  95. return defs.NewNone[T]()
  96. }
  97. // AssertAction -- хранит состояние для проверки.
  98. type AssertAction[T ~bool] = helpers.AssertAction[T]
  99. // If -- условие для проверки.
  100. func If[T ~bool](isOk T) *AssertAction[T] {
  101. return helpers.If(isOk)
  102. }
  103. // SleepMs -- задержка в миллисекундах.
  104. func SleepMs() {
  105. helpers.SleepMs()
  106. }
  107. // LErr -- внутренняя неизменяемая ошибка.
  108. type LErr = defs.LErr
  109. // LetErr -- создать новую обёрнутую ошибку.
  110. func LetErr[T TxtConstraint](msg T, arg ...any) *LErr {
  111. return defs.LetErr(msg, arg...)
  112. }
  113. // SafeChan -- умный безопасный канал.
  114. type SafeChan[T any] = safe_chan.SafeChan[T]
  115. // safe_chan.SafeChanParam[T]
  116. type SafeChanParam[T any] = safe_chan.SafeChanParam[T]
  117. func MutSafeChan[T any](param *safe_chan.SafeChanParam[T]) *SafeChan[T] {
  118. return safe_chan.MutSafeChan(param)
  119. }
  120. // Sprintf -- форматирует строку с помощью fmt.Sprintf.
  121. func Sprintf[T TxtConstraint](val T, arg ...any) Txt {
  122. return defs.Sprintf(val, arg...)
  123. }
  124. // BucketName -- имя сущности.
  125. type BucketName = defs.BucketName
  126. // Atoi -- возвращает возможное число.
  127. func Atoi(val Txt) *Result[Num] {
  128. return defs.Atoi(val)
  129. }
  130. // MSafeNum -- потокобезопасное число.
  131. type MSafeNum = defs.MSafeNum
  132. // MutSafeNumFromTxt -- возвращает новое потокобезопасное число из текста.
  133. func MutSafeNumFromTxt[T TxtConstraint](strVal T) *Result[*MSafeNum] {
  134. return defs.MutSafeNumFromTxt(strVal)
  135. }
  136. // MutSafeNumFromEnv -- возвращает новое потокобезопасное число из окружения.
  137. func MutSafeNumFromEnv(env *LTxt) *Result[*MSafeNum] {
  138. return defs.MutSafeNumFromEnv(env)
  139. }
  140. // MutSafeNum -- возвращает новое потокобезопасное число.
  141. func MutSafeNum(val Num) *MSafeNum {
  142. val_ := defs.MutSafeNum(val)
  143. return val_
  144. }
  145. // MSafeTxt -- потокобезопасный внутренний текст.
  146. type MSafeTxt = defs.MSafeTxt
  147. // MutSafeTxt -- возвращает новый потокобезопасный текст.
  148. func MutSafeTxt[T TxtConstraint](txt T, arg ...any) *MSafeTxt {
  149. str := defs.MutSafeTxt(txt, arg...)
  150. return str
  151. }
  152. // MutSafeTxt -- возвращает новый потокобезопасный текст.
  153. func MutSafeTxtFromEnv(env *LTxt) *Result[*MSafeTxt] {
  154. str := defs.MutSafeTxtFromEnv(env)
  155. return str
  156. }
  157. // MSafeBool -- потокобезопасный булевый признак.
  158. type MSafeBool = defs.MSafeBool
  159. // MutSafeBool -- возвращает новый потокобезопасный булевый признак.
  160. func MutSafeBool(val Bool) *MSafeBool {
  161. sf := defs.MutSafeBool(val)
  162. return sf
  163. }
  164. // MSafeBoolReact -- потокобезопасный булевый признак с реакцией на своё изменение.
  165. type MSafeBoolReact = defs.MSafeBoolReact
  166. // MutSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную.
  167. func MutSafeBoolReact() *MSafeBoolReact {
  168. val := defs.MutSafeBoolReact()
  169. return val
  170. }
  171. // MSafeMutex -- безопасный мьютекс.
  172. type MSafeMutex = defs.MSafeMutex
  173. // MutSafeMutex -- возвращает новый потокобезопасный мьютекс.
  174. func MutSafeMutex() *MSafeMutex {
  175. sf := defs.MutSafeMutex()
  176. return sf
  177. }