hx_swap.go 901 B

123456789101112131415161718192021222324252627282930313233343536
  1. // package hx_swap -- атрибут HTMX (политика замены).
  2. package hx_swap
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/d0"
  5. mWt "gitp78su.ipnodns.ru/svi/kern/v4/d2/wui/wui_types"
  6. )
  7. // HxSwap -- атрибут HTMX (политика замены).
  8. type HxSwap struct {
  9. *d0.MSafeMutex
  10. swap *d0.MTxt
  11. }
  12. // NewHxSwap -- возвращает новую политику замены.
  13. func NewHxSwap() *HxSwap {
  14. sf := &HxSwap{
  15. MSafeMutex: d0.MutSafeMutex(),
  16. }
  17. _ = mWt.IHxSwap(sf)
  18. return sf
  19. }
  20. // String -- возвращает строковое представление тэга.
  21. func (sf *HxSwap) String() string {
  22. sf.RLock()
  23. defer sf.RUnlock()
  24. return `hx-swap="` + sf.swap.String() + `"`
  25. }
  26. // Swap -- возвращает хранимое значение политики замена.
  27. func (sf *HxSwap) Swap() *d0.MTxt {
  28. sf.RLock()
  29. defer sf.RUnlock()
  30. return sf.swap
  31. }