// package def_bool -- неизменяемое внутренне булево package def_bool import ( "fmt" "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/def_spec_base" "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner" "gitp78su.ipnodns.ru/svi/kern/v4/d0/helpers" ) // LBool -- неизменяемое внутреннее булево. type LBool struct { *owner.OwnerPass val def_spec_base.Bool } // LetBool -- возвращает новый внутренний неизменяемый Bool func LetBool[T def_spec_base.BoolConstraint](owner *owner.LOwner, val T) *LBool { helpers.If(owner == nil).Hassert("LetBool(): owner==nil") sf := &LBool{ OwnerPass: owner.Pass(), val: def_spec_base.Bool(val), } return sf } // IsNot -- проверяет на false. func (sf *LBool) IsNot() def_spec_base.Bool { sf.CheckOwner() return sf.val == false } // IsOk -- проверяет на true. func (sf *LBool) IsOk() def_spec_base.Bool { sf.CheckOwner() return sf.val == true } // Let -- возвращает неизменяемое значение func (sf *LBool) Let() *LBool { sf.CheckOwner() return sf } // String -- возвращает строковое представление func (sf *LBool) String() string { return fmt.Sprintf("LBool(owner(%v) val(%v))", sf.OwnerPass, sf.val) }