module_name.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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 string
  9. // IModuleNameFix -- фиксированное имя модуля.
  10. type IModuleNameFix interface {
  11. // Get -- получить имя модуля
  12. Get() AModuleName
  13. // String -- строковое представление имени модуля
  14. String() string
  15. // Txt -- внутренне представление имени модуля
  16. Txt() defs.ITxtFix
  17. }
  18. type ModuleName struct {
  19. name defs.ITxtFix
  20. }
  21. // NewModuleName -- создать новое имя модуля.
  22. func NewModuleName(val AModuleName) *ModuleName {
  23. helpers.Hassert(val != "", "NewAModuleName(): val is empty")
  24. sf := &ModuleName{
  25. name: defs.Txt(val),
  26. }
  27. _ = IModuleNameFix(sf)
  28. return sf
  29. }
  30. // Txt -- возвращает внутренне представление имени модуля.
  31. func (sf *ModuleName) Txt() defs.ITxtFix {
  32. return sf.name
  33. }
  34. // String -- строковое представление.
  35. func (sf *ModuleName) String() string {
  36. return sf.name.String()
  37. }
  38. // Get -- возвращает имя модуля.
  39. func (sf *ModuleName) Get() AModuleName {
  40. return AModuleName(sf.name.Get())
  41. }
  42. // Byte -- возвращает байты.
  43. func (sf *ModuleName) Byte() []byte {
  44. return sf.name.Byte()
  45. }
  46. // Rune -- возвращает руны.
  47. func (sf *ModuleName) Rune() []rune {
  48. return sf.name.Rune()
  49. }
  50. // Len -- длина строки.
  51. func (sf *ModuleName) Len() defs.Int {
  52. return sf.name.Len()
  53. }