defs.go 5.2 KB

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