module_name.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // package module_name -- имя модуля
  2. package module_name
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/d0"
  5. )
  6. // AModuleName -- уникальное имя модуля.
  7. type AModuleName d0.Txt
  8. // Имя модуля
  9. type moduleName struct {
  10. name AModuleName
  11. }
  12. // LModuleName -- фиксированное имя модуля.
  13. type LModuleName struct {
  14. moduleName
  15. }
  16. // MModuleName -- изменяемое имя модуля.
  17. type MModuleName struct {
  18. LModuleName
  19. }
  20. // LetModuleName -- создать фиксированнанное имя модуля.
  21. func LetModuleName(val AModuleName) *LModuleName {
  22. sf := &LModuleName{
  23. name: val,
  24. }
  25. return sf
  26. }
  27. // MutModuleName -- создать новое имзменяемое имя модуля.
  28. func MutModuleName(val AModuleName) *MModuleName {
  29. d0.If(val == "").Hassert("NewAModuleName(): val is empty")
  30. sf := &MModuleName{
  31. LModuleName: *LetModuleName(val),
  32. }
  33. return sf
  34. }
  35. // String -- строковое представление.
  36. func (sf moduleName) String() string {
  37. return string(sf.name)
  38. }
  39. // Txt -- возвращает строковое представление
  40. func (sf moduleName) Txt() d0.Txt {
  41. return d0.Txt(sf.name)
  42. }
  43. // Get -- возвращает имя модуля.
  44. func (sf moduleName) Get() AModuleName {
  45. return sf.name
  46. }
  47. // Byte -- возвращает байты.
  48. func (sf moduleName) Byte() []byte {
  49. return []byte(sf.name)
  50. }
  51. // Rune -- возвращает руны.
  52. func (sf moduleName) Rune() []rune {
  53. return []rune(sf.name)
  54. }
  55. // Len -- длина строки.
  56. func (sf moduleName) Len() d0.Num {
  57. return d0.Num(len(sf.name))
  58. }