quark_str.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // package quark_str -- кварк строки
  2. package quark_str
  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. // QStr -- кварк строки
  8. type QStr[M quark_val.CMod] struct {
  9. *quark_base.QBase[M, string]
  10. }
  11. // NewQStr -- создает фиксированную новую кварк строку
  12. func NewQStr(val string) *QStr[quark_val.Fix] {
  13. optMass := quark_base.QBaseOptMass[quark_val.Fix, string](len(val))
  14. optVal := quark_base.QBaseOptVal(val)
  15. sf := &QStr[quark_val.Fix]{
  16. QBase: quark_base.NewQBase(optMass, optVal),
  17. }
  18. return sf
  19. }
  20. // NewQStrMut -- создает мутабельную новую кварк строку
  21. func NewQStrMut(val string) *QStr[quark_val.Mut] {
  22. optMass := quark_base.QBaseOptMass[quark_val.Mut, string](len(val))
  23. optVal := quark_base.QBaseOptValMut(val)
  24. sf := &QStr[quark_val.Mut]{
  25. QBase: quark_base.NewQBaseMut(optMass, optVal),
  26. }
  27. return sf
  28. }
  29. // Get -- возвращает хранимое значение
  30. func (sf *QStr[M]) Get() string {
  31. return sf.Val().Get()
  32. }
  33. // Set -- устанавливает хранимое значение
  34. func Set(sf *QStr[quark_val.Mut], val string) {
  35. quark_val.Set(sf.Val(), val)
  36. }