defs.go 7.7 KB

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