// package module_name -- имя модуля package module_name import ( "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers" ) // AModuleName -- уникальное имя модуля. type AModuleName string // IModuleNameFix -- фиксированное имя модуля. type IModuleNameFix interface { defs.IStr // Get -- получить имя модуля Get() AModuleName // String -- строковое представление имени модуля String() string } type ModuleName struct { name AModuleName } // NewModuleName -- создать новое имя модуля. func NewModuleName(val AModuleName) *ModuleName { helpers.Hassert(val != "", "NewAModuleName(): val is empty") sf := &ModuleName{ name: val, } _ = IModuleNameFix(sf) return sf } // Str -- возвращает внутреннюю строку. func (sf *ModuleName) Str() defs.AStr { return defs.AStr(sf.name) } // String -- строковое представление. // //go:fix inline func (sf *ModuleName) String() string { return string(sf.name) } // Get -- получить строковое представление. func (sf *ModuleName) Get() AModuleName { return sf.name } // Byte -- возвращает байты. func (sf *ModuleName) Byte() []byte { return []byte(sf.name) } // Rune -- возвращает руны. func (sf *ModuleName) Rune() []rune { return []rune(sf.name) } // Len -- длина строки. func (sf *ModuleName) Len() defs.Int { return defs.Int(len(sf.name)) }