defs.go 6.5 KB

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