defs.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. // package defs -- предметные типы ядра.
  2. package defs
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_bool"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_err"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_num"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_fn"
  9. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_time"
  10. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_txt"
  11. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/safe_bool"
  12. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/safe_bool_react"
  13. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/safe_num"
  14. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/safe_txt"
  15. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/option"
  16. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
  17. )
  18. // Bool -- внутренне представление логического значения.
  19. type Bool = def_spec_base.Bool
  20. // LBool -- неизменяемое булево значение.
  21. type LBool = def_bool.LBool
  22. // LetBool -- возвращает новое внутреннее логическое значение.
  23. func LetBool(val Bool) *LBool {
  24. return def_bool.LetBool(val)
  25. }
  26. // MBool -- изменяемое булево значение.
  27. type MBool = def_bool.MBool
  28. // MutBool -- возвращает новый изменяемый Bool.
  29. func MutBool(val Bool) *MBool {
  30. return def_bool.MutBool(val)
  31. }
  32. // Num -- внутренне представление числа.
  33. type Num = def_spec_base.Num
  34. // LNum -- внутренне неизменяемое число.
  35. type LNum = def_num.LNum
  36. // LetNum -- возвращает новое внутреннее неизменяемое число.
  37. func LetNum(val Num) *LNum {
  38. return def_num.LetNum(val)
  39. }
  40. // MNum -- внутреннее изменяемое число.
  41. type MNum = def_num.MNum
  42. // NumConstraint -- ограничение внутреннего целого.
  43. type NumConstraint = def_spec_base.NumConstraint
  44. // MutNum -- возвращает новое внутреннее изменяемое число.
  45. func MutNum[T NumConstraint](val T) *MNum {
  46. return def_num.MutNum(val)
  47. }
  48. // Txt -- внутренее представление текста.
  49. type Txt = def_spec_base.Txt
  50. // TxtConstraint -- разрешает строки и любые типы на его основе (например, ATxt).
  51. type TxtConstraint = def_spec_fn.TxtConstraint
  52. // LTxt -- внутренний неизменяемый текст.
  53. type LTxt = def_txt.LTxt
  54. // LetTxt -- создать новую неизменяемый текст.
  55. func LetTxt[T TxtConstraint](msg T, arg ...any) *LTxt {
  56. return def_txt.LetTxt(msg, arg...)
  57. }
  58. // MTxt -- внутренний изменяемый текст.
  59. type MTxt = def_txt.MTxt
  60. // MutTxt -- создать новый внутрениий изменяемый текст.
  61. func MutTxt[T TxtConstraint](msg T, arg ...any) *MTxt {
  62. return def_txt.MutTxt(msg, arg...)
  63. }
  64. // LErr -- внутренняя неизменяемая ошибка.
  65. type LErr = def_err.LErr
  66. // LetErr -- создать новую обёрнутую ошибку.
  67. func LetErr[T TxtConstraint](msg T, arg ...any) *LErr {
  68. return def_err.LetErr(msg, arg...)
  69. }
  70. // BucketName -- имя сущности.
  71. type BucketName *LTxt
  72. // Result -- результат выполнения.
  73. type Result[T any] = result.Result[T]
  74. // ResOk -- возвращает успешный Result с значением.
  75. func ResOk[T any](val T) *Result[T] {
  76. return result.ResOk(val)
  77. }
  78. // ResErr -- возвращает Result с ошибкой.
  79. func ResErr[T any](err error) *Result[T] {
  80. return result.ResErr[T](err)
  81. }
  82. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  83. func WrapErr[T any](res *Result[T], err error) *Result[T] {
  84. return result.WrapErr(res, err)
  85. }
  86. // Option -- опциональный результат.
  87. type Option[T any] = option.Option[T]
  88. // NewSome -- создать новый опциональный результат.
  89. func NewSome[T any](val T) *Option[T] {
  90. return option.NewSome(val)
  91. }
  92. // NewNone -- создать новый опциональный результат.
  93. func NewNone[T any]() *Option[T] {
  94. return option.NewNone[T]()
  95. }
  96. // Time -- внутренее представление времени.
  97. type Time = def_spec_base.Time
  98. // LTime -- внутренее неизменяемое время.
  99. //
  100. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  101. type LTime = def_time.LTime
  102. // LetTimeAuto -- возвращает новое автоматическое внутреннее неизменяемое время.
  103. //
  104. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  105. func LetTimeAuto() *LTime {
  106. return def_time.LetTimeAuto()
  107. }
  108. // MTime -- внутренее изменяемое время.
  109. //
  110. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  111. type MTime = def_time.MTime
  112. // MutTimeAuto -- возвращает новое автоматическое внутреннее изменяемое время.
  113. //
  114. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  115. func MutTimeAuto() *MTime {
  116. return def_time.MutTimeAuto()
  117. }
  118. // Sprintf -- форматирует строку с помощью fmt.Sprintf.
  119. func Sprintf[T TxtConstraint](val T, arg ...any) Txt {
  120. return def_spec_fn.Sprintf(val, arg...)
  121. }
  122. // Atoi -- возвращает возможное число.
  123. func Atoi(val Txt) *Result[Num] {
  124. return def_spec_fn.Atoi(val)
  125. }
  126. // MSafeNum -- потокобезопасное число.
  127. type MSafeNum = safe_num.MSafeNum
  128. // MutSafeNumFromTxt -- возвращает новое потокобезопасное число из текста.
  129. func MutSafeNumFromTxt[T TxtConstraint](strVal T) *Result[*MSafeNum] {
  130. return safe_num.MutSafeNumFromTxt(strVal)
  131. }
  132. // MutSafeNumFromEnv -- возвращает новое потокобезопасное число из окружения.
  133. func MutSafeNumFromEnv(env *LTxt) *Result[*MSafeNum] {
  134. return safe_num.MutSafeNumFromEnv(env)
  135. }
  136. // MutSafeNum -- возвращает новое потокобезопасное число.
  137. func MutSafeNum(val Num) *MSafeNum {
  138. val_ := safe_num.MutSafeNum(val)
  139. return val_
  140. }
  141. // MSafeTxt -- потокобезопасный внутренний текст.
  142. type MSafeTxt = safe_txt.MSafeTxt
  143. // MutSafeTxt -- возвращает новый потокобезопасный текст.
  144. func MutSafeTxt[T TxtConstraint](txt T, arg ...any) *MSafeTxt {
  145. str := safe_txt.MutSafeTxt(txt, arg...)
  146. return str
  147. }
  148. // MutSafeTxt -- возвращает новый потокобезопасный текст.
  149. func MutSafeTxtFromEnv(env *LTxt) *Result[*MSafeTxt] {
  150. str := safe_txt.MutSafeTxtFromEnv(env)
  151. return str
  152. }
  153. // MSafeBool -- потокобезопасный булевый признак.
  154. type MSafeBool=safe_bool.MSafeBool
  155. // MutSafeBool -- возвращает новый потокобезопасный булевый признак.
  156. func MutSafeBool(val Bool) *MSafeBool {
  157. sf := safe_bool.MutSafeBool(val)
  158. return sf
  159. }
  160. // MSafeBoolReact -- потокобезопасный булевый признак с реакцией на своё изменение.
  161. type MSafeBoolReact=safe_bool_react.MSafeBoolReact
  162. // MutSafeBoolReact -- возвращает новую потокобезопасную реактивную булеву переменную.
  163. func MutSafeBoolReact() *MSafeBoolReact {
  164. val := safe_bool_react.MutSafeBoolReact()
  165. return val
  166. }