| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // package owner -- описатель владельца
- package owner
- import (
- "fmt"
- "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/def_spec_base"
- "gitp78su.ipnodns.ru/svi/kern/v4/d0/helpers"
- )
- // OwnerId -- ID владельца.
- type OwnerId def_spec_base.Num
- // LOwner -- неизменяемый владелец.
- type LOwner struct {
- id OwnerId // Хранимое значение ID владельца
- name def_spec_base.Txt // Имя владельца
- }
- // LetOwner -- получить нового неизменяемого владельца.
- func LetOwner[T def_spec_base.NumConstraint, U def_spec_base.TxtConstraint](id T, name U) *LOwner {
- helpers.If(id == 0).Hassert("LetOwner(): id==0")
- helpers.If(name == "").Hassert("LetOwner(): id=%v, name is empty", id)
- sf := &LOwner{
- id: OwnerId(id),
- name: def_spec_base.Txt(name),
- }
- return sf
- }
- // Id -- получить значение ID владельца.
- func (sf *LOwner) Id() OwnerId {
- return sf.id
- }
- // Name -- получить имя владельца.
- func (sf *LOwner) Name() def_spec_base.Txt {
- return sf.name
- }
- const (
- strOut = `LOwner(
- id(%v)
- name(%v)
- )`
- )
- // String -- получить строковое представление ID владельца.
- func (sf *LOwner) String() string {
- return fmt.Sprintf(strOut, sf.id, sf.name)
- }
- // Pass -- возвращает паспорт владельца
- func (sf *LOwner) Pass() *OwnerPass {
- pass := &OwnerPass{
- ownerDest: sf,
- ownerCur: sf,
- }
- return pass
- }
|