package topic import ( "gitp78su.ipnodns.ru/svi/kern/v4/lev0" ) // ATopic -- имя топика в шине. type ATopic lev0.ATxt // ITopicFix -- неизменяемое имя топика в шине. type ITopicFix interface { lev0.IString[ATopic] } // ITopicMut -- изменяемое имя топика в шине. type ITopicMut interface { ITopicFix // Set -- устанавливает имя топика Set(val ATopic) } // Topic -- имя топика в шине. type Topic struct { val ATopic } // NewTopic -- создает новый топик. func NewTopic(val ATopic) *Topic { lev0.If(val == "").Hassert("NewTopic(): val is empty") sf := &Topic{ val: val, } _ = ITopicMut(sf) return sf } // String -- строковое представление топика. func (sf *Topic) String() string { return string(sf.val) } // Get -- получить строковое представление топика. func (sf *Topic) Get() ATopic { return sf.val } // Set -- установить строковое представление топика. func (sf *Topic) Set(val ATopic) { lev0.If(val == "").Hassert("Topic.Set(): val is empty") sf.val = val }