You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.0 KiB

/*
---------------------------------------------------------
Project activething
Active Thing (activething.com) git.activething.com/go
File name err_group.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"
"bytes"
"fmt"
)
type ErrGroup ErrList
func (g ErrGroup) Error() (res string) {
bf := bytes.Buffer{}
defer bf.Reset()
bf.WriteString("Error (core:errs.group-error) \n")
for i,e := range g {
bf.WriteString(fmt.Sprintf("Cause %d (%s)\n",i,e.Error()))
}
res = bf.String()
return
}
func (g ErrGroup) Count() int {
return len(g) }
func (g ErrGroup) Errors() []error {
return g }
func (g ErrGroup) Cause() error {
switch len(g) {
case 0:
return nil
case 1:
return g[0]
default:
return ErrGroup(g[1:])
}
}
func (g ErrGroup) Unwrap() error {
return g.Cause() }
func (g ErrGroup) Stack() StackTrace {
return g.Stack() }
func (g ErrGroup) WithInfo(options ...opts.OptionFnc[ErrInfo]) *ErrInfo {
return NewErrInfo(g, options...) }
/*
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
I HAVE NO DESIRE TO WALK ON WATER," SAID SIDDHARTA.
"LET THE OLD SHRAMANAS SATISFY THEMSELVES WITH SUCH SKILLS.
SIDDHARTA
- HERMANN HESSE -
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/

Powered by TurnKey Linux.