def_let_bool.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. )
  8. // LBool -- неизменяемое внутреннее булево.
  9. type LBool struct {
  10. *owner.OwnerPass
  11. val def_spec_base.Bool
  12. }
  13. // LetBool -- возвращает новый внутренний неизменяемый Bool
  14. func LetBool[T def_spec_base.BoolConstraint](owner *owner.LOwner, val T) *LBool {
  15. sf := &LBool{
  16. OwnerPass: owner.Pass(),
  17. val: def_spec_base.Bool(val),
  18. }
  19. return sf
  20. }
  21. // IsNot -- проверяет на false.
  22. func (sf *LBool) IsNot() def_spec_base.Bool {
  23. sf.CheckOwner()
  24. return sf.val == false
  25. }
  26. // IsOk -- проверяет на true.
  27. func (sf *LBool) IsOk() def_spec_base.Bool {
  28. sf.CheckOwner()
  29. return sf.val == true
  30. }
  31. // Let -- возвращает неизменяемое значение
  32. func (sf *LBool) Let() *LBool {
  33. sf.CheckOwner()
  34. return sf
  35. }
  36. // String -- возвращает строковое представление
  37. func (sf *LBool) String() string {
  38. return fmt.Sprintf("LBool(owner(%v) val(%v))", sf.OwnerPass, sf.val)
  39. }