module_name.go 1.5 KB

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