// package def_mut -- параметрический изменяемый контейнер package def_mut import ( "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner" "gitp78su.ipnodns.ru/svi/kern/v4/d0/helpers" ) // Mut -- параметрический изменяемый контейнер type Mut[T any] struct { owner *owner.LOwner val T } // NewMut -- возвращает новый параметрический изменяемый контейнер func NewMut[T any](owner *owner.LOwner, val T) *Mut[T] { helpers.If(owner == nil).Hassert("NewMut(): owner==nil") sf := &Mut[T]{ owner: owner, val: val, } return sf } // Get -- возвращает хранимое значение func (sf *Mut[T]) Get() T { sf.owner.Pass().CheckOwner() return sf.val } // Set -- устанавливает хранимое значение func (sf *Mut[T]) Set(val T) { sf.owner.Pass().CheckOwner() sf.val = val }