/* --------------------------------------------------------- Project activething Active Thing (activething.com) git.activething.com/go File name err_cause.go Created by DEV Modified 23/10/2023 Copyright 2023 activething.com --------------------------------------------------------- // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // */ package errs import "activething.com/go/gogo/core/opts" type ( // ErrCause // Define una estructura para almacenar un error y su causa previa // Implmenta error, Unwrap // ErrCause struct { error cause error } ) func NewErrCause(err, cause error) *ErrCause { if err == nil { if cause == nil { return nil } return &ErrCause{error: cause} } return &ErrCause{error: err, cause: cause} } func (e ErrCause) WithInfo(options ...opts.OptionFnc[ErrInfo]) *ErrInfo { return NewErrInfo(e, options...) } func (e ErrCause) Stack() StackTrace { return getStackTrace(e.cause) } func (e ErrCause) Cause() error { return e.cause } func (e ErrCause) Unwrap() error { return e.cause } /* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: I HAVE NO DESIRE TO WALK ON WATER," SAID SIDDHARTA. "LET THE OLD SHRAMANAS SATISFY THEMSELVES WITH SUCH SKILLS. SIDDHARTA - HERMANN HESSE - ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */