// package elem_label -- текстовая метка для отображения package elem_label import ( "gitp78su.ipnodns.ru/svi/goarch/lev0/alias" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" "gitp78su.ipnodns.ru/svi/goarch/pkg/elems/elem_base" "gitp78su.ipnodns.ru/svi/kern/v3" ) // ElemLabel -- текстовая метка для отображения type ElemLabel struct { types.IElemBase Val_ alias.Label `yaml:"val"` // Метка для вывода Offset_ types.IOffset `yaml:"offset"` // Смещение метки } var ( hassert = kern.GetFnHassert() ) // NewElemLabel -- возвращает новую метку func NewElemLabel(label alias.Label, coord types.ICoord, offset types.IOffset) types.IElemLabel { sf := &ElemLabel{ IElemBase: elem_base.NewElemBase(coord, "elem_label"), Val_: label, Offset_: offset, } sf.SelfCheck() return sf } // SelfCheck -- самопроверка типа func (sf *ElemLabel) SelfCheck() { sf.IElemBase.SelfCheck() hassert(sf.Offset_ != nil, "SelfCheck(): Offset_ is nil") } // String -- возвращает метку // //go:fix inline func (sf *ElemLabel) String() string { return string(sf.Val_) } // Get -- возвращает метку // //go:fix inline func (sf *ElemLabel) Get() alias.Label { return sf.Val_ } // Offset -- возвращает смещение метки // //go:fix inline func (sf *ElemLabel) Offset() types.IOffset { return sf.Offset_ }