module_name.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. func NewModuleName(val AModuleName) *ModuleName {
  20. helpers.Hassert(val != "", "NewAModuleName(): val is empty")
  21. sf := &ModuleName{
  22. name: val,
  23. }
  24. _ = IModuleNameFix(sf)
  25. return sf
  26. }
  27. // String -- строковое представление.
  28. //
  29. //go:fix inline
  30. func (sf *ModuleName) String() string {
  31. return string(sf.name)
  32. }
  33. // Get -- получить строковое представление.
  34. func (sf *ModuleName) Get() AModuleName {
  35. return sf.name
  36. }