module_name.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // package module_name -- имя модуля
  2. package module_name
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  6. )
  7. // AModuleName -- уникальное имя модуля.
  8. type AModuleName defs.ATxt
  9. // IModuleNameFix -- фиксированное имя модуля.
  10. type IModuleNameFix interface {
  11. defs.IString
  12. // Get -- получить имя модуля
  13. Get() AModuleName
  14. // Txt -- внутренне представление имени модуля
  15. Txt() defs.ITxtFix
  16. }
  17. type ModuleName struct {
  18. name defs.ITxtFix
  19. }
  20. // NewModuleName -- создать новое имя модуля.
  21. func NewModuleName(val AModuleName) *ModuleName {
  22. helpers.Hassert(val != "", "NewAModuleName(): val is empty")
  23. sf := &ModuleName{
  24. name: defs.TxtFix(val),
  25. }
  26. _ = IModuleNameFix(sf)
  27. return sf
  28. }
  29. // Txt -- возвращает внутренне представление имени модуля.
  30. func (sf *ModuleName) Txt() defs.ITxtFix {
  31. return sf.name
  32. }
  33. // String -- строковое представление.
  34. func (sf *ModuleName) String() string {
  35. return sf.name.String()
  36. }
  37. // Get -- возвращает имя модуля.
  38. func (sf *ModuleName) Get() AModuleName {
  39. return AModuleName(sf.name.Get())
  40. }
  41. // Byte -- возвращает байты.
  42. func (sf *ModuleName) Byte() []byte {
  43. return sf.name.Byte()
  44. }
  45. // Rune -- возвращает руны.
  46. func (sf *ModuleName) Rune() []rune {
  47. return sf.name.Rune()
  48. }
  49. // Len -- длина строки.
  50. func (sf *ModuleName) Len() defs.Int {
  51. return sf.name.Len()
  52. }