/* --------------------------------------------------------- Project activething Active Thing (activething.com) git.activething.com/go File name err_info.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" "time" ) type ( // ErrInfo // Representa un objeto para añadir una capa de información addicional a un error // ErrInfo struct { /*embedded*/ error date time.Time source string help string message string link string details map[string]any stack StackTrace } ) func NewErrInfo(err error, options ...opts.OptionFnc[ErrInfo]) *ErrInfo { if err == nil { return nil } return opts.Apply(&ErrInfo{error: err}, options...) } func (i ErrInfo) Message() string { return i.message } func (i ErrInfo) Source() string { return i.source } func (i ErrInfo) Help() string { return i.help } func (i ErrInfo) Link() string { return i.link } func (i ErrInfo) Stack() StackTrace { if i.stack != nil { return i.stack } return getStackTrace(i.Cause()) } func (i ErrInfo) Details() map[string]any { return i.Details() } func (i ErrInfo) Cause() error { if cs, is := i.error.(Causer); is { return cs.Cause() } return Unwrap(i.error) } func (i ErrInfo) Unwrap() error { return i.Cause() } func (i ErrInfo) Date() time.Time { return i.date } /* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: I HAVE NO DESIRE TO WALK ON WATER," SAID SIDDHARTA. "LET THE OLD SHRAMANAS SATISFY THEMSELVES WITH SUCH SKILLS. SIDDHARTA - HERMANN HESSE - ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */