def_bool_let.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // package def_bool -- неизменяемое внутренне булево
  2. package def_bool
  3. import (
  4. "fmt"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/def_spec_base"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/d0/helpers"
  8. )
  9. // LBool -- неизменяемое внутреннее булево.
  10. type LBool struct {
  11. *owner.OwnerPass
  12. val def_spec_base.Bool
  13. }
  14. // LetBool -- возвращает новый внутренний неизменяемый Bool
  15. func LetBool[T def_spec_base.BoolConstraint](owner *owner.LOwner, val T) *LBool {
  16. helpers.If(owner == nil).Hassert("LetBool(): owner==nil")
  17. sf := &LBool{
  18. OwnerPass: owner.Pass(),
  19. val: def_spec_base.Bool(val),
  20. }
  21. return sf
  22. }
  23. // IsNot -- проверяет на false.
  24. func (sf *LBool) IsNot() def_spec_base.Bool {
  25. sf.CheckOwner()
  26. return sf.val == false
  27. }
  28. // IsOk -- проверяет на true.
  29. func (sf *LBool) IsOk() def_spec_base.Bool {
  30. sf.CheckOwner()
  31. return sf.val == true
  32. }
  33. // Let -- возвращает неизменяемое значение
  34. func (sf *LBool) Let() *LBool {
  35. sf.CheckOwner()
  36. return sf
  37. }
  38. // String -- возвращает строковое представление
  39. func (sf *LBool) String() string {
  40. return fmt.Sprintf("LBool(owner(%v) val(%v))", sf.OwnerPass, sf.val)
  41. }