module_name.go 1.5 KB

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