// package arch_text -- архитектурный текст package arch_text import ( "fmt" "gitp78su.ipnodns.ru/svi/kern/v3/krn/ktypes" "gitp78su.ipnodns.ru/svi/goarch/lev0/alias" "gitp78su.ipnodns.ru/svi/goarch/lev0/types" "gitp78su.ipnodns.ru/svi/goarch/lev1/arch_node" ) // ArchText -- архитектурный текст type ArchText struct { *arch_node.ArchNode Text_ alias.ArchText `yaml:"text"` // Значение текста } // NewArchText -- возвращает новый архитектурный текст func NewArchText(text alias.ArchText, parentId alias.ArchId) ktypes.Result[*ArchText] { sf := &ArchText{ ArchNode: arch_node.NewArchNode("arch_text", parentId), Text_: text, } someErr := sf.InvarCheck() if someErr.IsVal() { return ktypes.NewErr[*ArchText](someErr.Val()) } _ = types.IArchText(sf) return ktypes.NewOk(sf) } // InvarCheck -- проверка инвариантов func (sf *ArchText) InvarCheck() ktypes.Option[error] { if sf.ArchNode == nil { err := fmt.Errorf("ArchText.InvarCheck(): ArchNode==nil") return ktypes.NewSome(err) } return ktypes.NewNone[error]() } // String -- возвращает метку // //go:fix inline func (sf *ArchText) String() string { return string(sf.Text_) } // Get -- возвращает метку // //go:fix inline func (sf *ArchText) Get() alias.ArchText { return sf.Text_ }