quark_bool.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // package quark_bool -- кварк булево.
  2. package quark_bool
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_base"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/quark/quark_val"
  6. )
  7. // QBool -- кварк булево (типизированный модификатором базового кварка).
  8. type QBool[M quark_val.CMod] struct {
  9. *quark_base.QBase[M, bool] // базовый кварк
  10. }
  11. // NewQBool -- создать фиксированный кварк булево.
  12. func NewQBool(val bool) *QBool[quark_val.Fix] {
  13. optMass := quark_base.QBaseOptMass[quark_val.Fix, bool](1)
  14. optVal := quark_base.QBaseOptVal(val)
  15. sf := &QBool[quark_val.Fix]{
  16. QBase: quark_base.NewQBase(optMass, optVal),
  17. }
  18. return sf
  19. }
  20. // NewQBoolMut -- создать мутируемый кварк булево.
  21. func NewQBoolMut(val bool) *QBool[quark_val.Mut] {
  22. optMass := quark_base.QBaseOptMass[quark_val.Mut, bool](1)
  23. optVal := quark_base.QBaseOptValMut(val)
  24. sf := &QBool[quark_val.Mut]{
  25. QBase: quark_base.NewQBaseMut(optMass, optVal),
  26. }
  27. return sf
  28. }
  29. // Get -- Возвращает хранимое значение.
  30. //
  31. //go:fix inline
  32. func (sf *QBool[M]) Get() bool {
  33. return sf.Val().Get()
  34. }
  35. // Set -- устанавливает хранимое значение.
  36. //
  37. //go:fix inline
  38. func Set(sf *QBool[quark_val.Mut], val bool) {
  39. quark_val.Set(sf.Val(), val)
  40. }