package main import ( "errors" "errs" "errs/stack" "fmt" ) func printTrace (s stack.Trace) { lf := s.Frames() for i,f := range lf { fmt.Printf("%d file %s line %d %s\n",i,f.File,f.LineNumber,f.FuncName) } } func GenerateBinaryString() string { binaryString := "" for c := 0; c < 255; c++ { if ('a' <= byte(c) && byte(c) <= 'z') || ('A' <= byte(c) && byte(c) <= 'Z') || byte(c) == '@' { binaryString += "1" } else { binaryString += "0" } } return binaryString } type ( MiCustomErr struct { error ms string } ) func (c MiCustomErr) Message() string { return "esto es un custom werro" } /* func fm (b *bytes.Buffer, e error, l int) { b.WriteString("Link :"+e.(MiCustomErr).Link+"\n") } */ func (c MiCustomErr) Errors () string { return "ERRRROPROO" } func (c MiCustomErr) Unwrap () error { return c.error } func main() { e := errs.ErrCode("Mi-Error") i := errs.NewErrInfo(e, errs.ErrInfoWithMessage("Esto es un mensage"), errs.ErrInfoWithCause(MiCustomErr{}), errs.ErrInfoWithStackTrace(2), ) ne := i.WrapWithCause(errors.New("UnNuevoErrrorrrr")) e1 := errors.New("UnError") e2 := errs.WrapWithCause(errors.New("sinvalude"),errs.WrapWithInfo(errors.New("ElOtro error"),errs.ErrInfoWithMessage("OtroError"))) e3 := errs.NewErrMulti(e1,e2) e4 := &MiCustomErr{} e5 := &MiCustomErr{} //me := errs.NewErrTrace(errs.NewErrMulti(e3,e4,e5,ne).WrapWithInfo(errs.ErrInfoWithMessage("Es0")),0) me := errs.NewErrMulti(e3,e4,e5,ne).WrapWithInfo(errs.ErrInfoWithMessage("Es0")) fmt.Print(errs.ToFormat(me,nil)) /* fmt.Print(errs.ToFormat(e4,nil)) fmt.Print(errs.ToFormat(e5,nil)) */ }