module_name.go 1.4 KB

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