| 1234567891011121314151617181920212223242526272829303132333435 |
- // 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
- }
|