defs.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. // package defs -- предметные типы ядра.
  2. package defs
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_let_bool"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_let_err"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_let_int"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_let_time"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_let_txt"
  9. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_mut_bool"
  10. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_mut_time"
  11. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_mut_txt"
  12. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base"
  13. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_fn"
  14. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/option"
  15. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/result"
  16. )
  17. // Bool -- внутренне представление логического значения.
  18. type Bool = def_spec_base.Bool
  19. // LBool -- неизменяемое булево значение.
  20. type LBool = def_let_bool.LBool
  21. // LetBool -- возвращает новое внутреннее логическое значение.
  22. func LetBool(val Bool) *LBool {
  23. return def_let_bool.LetBool(val)
  24. }
  25. // MBool -- изменяемое булево значение.
  26. type MBool = def_mut_bool.MBool
  27. // MutBool -- возвращает новый изменяемый Bool.
  28. func MutBool(val Bool) *MBool {
  29. return def_mut_bool.MutBool(val)
  30. }
  31. // Int -- внутренне представление числа.
  32. type Int = def_spec_base.Int
  33. // LInt -- внутренне неизменяемое целое.
  34. type LInt = def_let_int.LInt
  35. // LetInt -- возвращает новое внутреннее неизменяемое целое.
  36. func LetInt(val Int) *LInt {
  37. return def_let_int.LetInt(val)
  38. }
  39. // ATxt -- внутренее представление текста.
  40. type ATxt = def_spec_base.ATxt
  41. // TxtConstraint -- разрешает строки и любые типы на его основе (например, ATxt).
  42. type TxtConstraint = def_spec_fn.TxtConstraint
  43. // LTxt -- внутренний неизменяемый текст.
  44. type LTxt = def_let_txt.LTxt
  45. // LetTxt -- создать новую неизменяемую строку.
  46. func LetTxt[T TxtConstraint](msg T, arg ...any) *LTxt {
  47. return def_let_txt.LetTxt(msg, arg...)
  48. }
  49. // MTxt -- внутренний изменяемый текст.
  50. type MTxt = def_mut_txt.MTxt
  51. // MutTxt -- создать новый внутрениий изменяемый текст.
  52. func MutTxt[T TxtConstraint](msg T, arg ...any) *MTxt {
  53. return def_mut_txt.MutTxt(msg, arg...)
  54. }
  55. // LErr -- внутренняя неизменяемая ошибка.
  56. type LErr = def_let_err.LErr
  57. // LetErr -- создать новую обёрнутую ошибку.
  58. func LetErr[T TxtConstraint](msg T, arg ...any) *LErr {
  59. return def_let_err.LetErr(msg, arg...)
  60. }
  61. // BucketName -- имя сущности.
  62. type BucketName *LTxt
  63. // Result -- результат выполнения.
  64. type Result[T any] = result.Result[T]
  65. // ResOk -- возвращает успешный Result с значением.
  66. func ResOk[T any](val T) *Result[T] {
  67. return result.ResOk(val)
  68. }
  69. // ResErr -- возвращает Result с ошибкой.
  70. func ResErr[T any](err error) *Result[T] {
  71. return result.ResErr[T](err)
  72. }
  73. // WrapErr -- оборачивает существующий Result с ошибкой с новой ошибкой.
  74. func WrapErr[T any](res *Result[T], err error) *Result[T] {
  75. return result.WrapErr(res, err)
  76. }
  77. // Option -- опциональный результат.
  78. type Option[T any] = option.Option[T]
  79. // NewSome -- создать новый опциональный результат.
  80. func NewSome[T any](val T) *Option[T] {
  81. return option.NewSome(val)
  82. }
  83. // NewNone -- создать новый опциональный результат.
  84. func NewNone[T any]() *Option[T] {
  85. return option.NewNone[T]()
  86. }
  87. // Time -- внутренее представление времени.
  88. type Time = def_spec_base.Time
  89. // LTime -- внутренее неизменяемое время.
  90. //
  91. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  92. type LTime = def_let_time.LTime
  93. // LetTimeAuto -- возвращает новое автоматическое внутреннее неизменяемое время.
  94. //
  95. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  96. func LetTimeAuto() *LTime {
  97. return def_let_time.LetTimeAuto()
  98. }
  99. // MTime -- внутренее изменяемое время.
  100. //
  101. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  102. type MTime = def_mut_time.MTime
  103. // MutTimeAuto -- возвращает новое автоматическое внутреннее изменяемое время.
  104. //
  105. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  106. func MutTimeAuto() *MTime {
  107. return def_mut_time.MutTimeAuto()
  108. }
  109. // IString -- интерфейс представления строки
  110. type IString[T any] = def_spec_base.IString[T]