// package def_err -- обёрнутая ошибка package def_err import ( "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/def_spec_base" "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/def_spec_fn" "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/def_txt" "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner" "gitp78su.ipnodns.ru/svi/kern/v4/d0/helpers" ) // LErr -- обёрнутая ошибка. type LErr struct { *def_txt.LTxt } // LetErr -- создать новую обёрнутую ошибку. func LetErr[T def_spec_fn.TxtConstraint](owner *owner.LOwner, msg T, arg ...any) *LErr { helpers.If(msg == "").Hassert("LetErr(): msg is empty") sf := &LErr{ LTxt: def_txt.LetTxt(owner, msg, arg...), } return sf } // WrapTxt -- возвращает обёрнутую ошибку. func (sf *LErr) WrapTxt[T def_spec_base.TxtConstraint](owner *owner.LOwner, err T, arg ...any) *LErr { sf.CheckOwner() _sf := &LErr{ LTxt: def_txt.LetTxt(owner, sf.Error()+"\n\t"+string(err), arg...), } return _sf } // WrapErr -- возвращает обёрнутую ошибку. func (sf *LErr) WrapErr(owner *owner.LOwner, err error, arg ...any) *LErr { sf.CheckOwner() _sf := &LErr{ LTxt: def_txt.LetTxt(owner, sf.Error()+"\n\t"+err.Error(), arg...), } return _sf } // IsErr -- возвращает true, если ошибка. func (sf *LErr) IsErr() def_spec_base.Bool { return sf.Get() != "" } // Error -- возвращает хранимую ошибку. func (sf *LErr) Error() string { sf.CheckOwner() return sf.String() }