module_name.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // package module_name -- имя модуля
  2. package module_name
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  5. )
  6. // AModuleName -- уникальное имя модуля.
  7. type AModuleName string
  8. // IModuleNameFix -- фиксированное имя модуля.
  9. type IModuleNameFix interface {
  10. // Get -- получить имя модуля
  11. Get() AModuleName
  12. // String -- строковое представление имени модуля
  13. String() string
  14. }
  15. type ModuleName struct {
  16. name AModuleName
  17. }
  18. // NewModuleName -- создать новое имя модуля.
  19. //
  20. //go:fix inline
  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. // String -- строковое представление.
  30. //
  31. //go:fix inline
  32. func (sf *ModuleName) String() string {
  33. return string(sf.name)
  34. }
  35. // Get -- получить строковое представление.
  36. func (sf *ModuleName) Get() AModuleName {
  37. return sf.name
  38. }