elem_label.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // package elem_label -- текстовая метка для отображения
  2. package elem_label
  3. import (
  4. "gitp78su.ipnodns.ru/svi/goarch/lev0/alias"
  5. "gitp78su.ipnodns.ru/svi/goarch/lev0/types"
  6. "gitp78su.ipnodns.ru/svi/goarch/pkg/elems/elem_base"
  7. "gitp78su.ipnodns.ru/svi/kern/v3"
  8. )
  9. // ElemLabel -- текстовая метка для отображения
  10. type ElemLabel struct {
  11. types.IElemBase
  12. Val_ alias.Label `yaml:"val"` // Метка для вывода
  13. Offset_ types.IOffset `yaml:"offset"` // Смещение метки
  14. }
  15. var (
  16. hassert = kern.GetFnHassert()
  17. )
  18. // NewElemLabel -- возвращает новую метку
  19. func NewElemLabel(label alias.Label, coord types.ICoord, offset types.IOffset) types.IElemLabel {
  20. sf := &ElemLabel{
  21. IElemBase: elem_base.NewElemBase(coord, "elem_label"),
  22. Val_: label,
  23. Offset_: offset,
  24. }
  25. sf.SelfCheck()
  26. return sf
  27. }
  28. // SelfCheck -- самопроверка типа
  29. func (sf *ElemLabel) SelfCheck() {
  30. sf.IElemBase.SelfCheck()
  31. hassert(sf.Offset_ != nil, "SelfCheck(): Offset_ is nil")
  32. }
  33. // String -- возвращает метку
  34. //
  35. //go:fix inline
  36. func (sf *ElemLabel) String() string {
  37. return string(sf.Val_)
  38. }
  39. // Get -- возвращает метку
  40. //
  41. //go:fix inline
  42. func (sf *ElemLabel) Get() alias.Label {
  43. return sf.Val_
  44. }
  45. // Offset -- возвращает смещение метки
  46. //
  47. //go:fix inline
  48. func (sf *ElemLabel) Offset() types.IOffset {
  49. return sf.Offset_
  50. }