mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-07-03 13:07:44 +00:00
Update vendor (#1265)
This commit is contained in:
12
vendor/github.com/wiggin77/merror/.gitignore
generated
vendored
Normal file
12
vendor/github.com/wiggin77/merror/.gitignore
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.exe~
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test binary, build with `go test -c`
|
||||
*.test
|
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||
*.out
|
21
vendor/github.com/wiggin77/merror/LICENSE
generated
vendored
Normal file
21
vendor/github.com/wiggin77/merror/LICENSE
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 wiggin77
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
2
vendor/github.com/wiggin77/merror/README.md
generated
vendored
Normal file
2
vendor/github.com/wiggin77/merror/README.md
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# merror
|
||||
Multiple Error aggregator for Golang.
|
43
vendor/github.com/wiggin77/merror/format.go
generated
vendored
Normal file
43
vendor/github.com/wiggin77/merror/format.go
generated
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
package merror
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// FormatterFunc is a function that converts a merror
|
||||
// to a string.
|
||||
type FormatterFunc func(merr *MError) string
|
||||
|
||||
// GlobalFormatter is the global merror formatter.
|
||||
// Set this to a custom formatter if desired.
|
||||
var GlobalFormatter = defaultFormatter
|
||||
|
||||
// defaultFormatter
|
||||
func defaultFormatter(merr *MError) string {
|
||||
count := 0
|
||||
overflow := 0
|
||||
|
||||
var format func(sb *strings.Builder, merr *MError, indent string)
|
||||
format = func(sb *strings.Builder, merr *MError, indent string) {
|
||||
count += merr.Len()
|
||||
overflow += merr.Overflow()
|
||||
|
||||
fmt.Fprintf(sb, "%sMError:\n", indent)
|
||||
for _, err := range merr.Errors() {
|
||||
if e, ok := err.(*MError); ok {
|
||||
format(sb, e, indent+" ")
|
||||
} else {
|
||||
fmt.Fprintf(sb, "%s%s\n", indent, err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sb := &strings.Builder{}
|
||||
format(sb, merr, "")
|
||||
fmt.Fprintf(sb, "%d errors total.\n", count)
|
||||
if merr.overflow > 0 {
|
||||
fmt.Fprintf(sb, "%d errors truncated.\n", overflow)
|
||||
}
|
||||
return sb.String()
|
||||
}
|
1
vendor/github.com/wiggin77/merror/go.mod
generated
vendored
Normal file
1
vendor/github.com/wiggin77/merror/go.mod
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
module github.com/wiggin77/merror
|
87
vendor/github.com/wiggin77/merror/merror.go
generated
vendored
Normal file
87
vendor/github.com/wiggin77/merror/merror.go
generated
vendored
Normal file
@ -0,0 +1,87 @@
|
||||
package merror
|
||||
|
||||
// MError represents zero or more errors that can be
|
||||
// accumulated via the `Append` method.
|
||||
type MError struct {
|
||||
cap int
|
||||
errors []error
|
||||
overflow int
|
||||
formatter FormatterFunc
|
||||
}
|
||||
|
||||
// New returns a new instance of `MError` with no limit on the
|
||||
// number of errors that can be appended.
|
||||
func New() *MError {
|
||||
me := &MError{}
|
||||
me.errors = make([]error, 0, 10)
|
||||
return me
|
||||
}
|
||||
|
||||
// NewWithCap returns a new instance of `MError` with a maximum
|
||||
// capacity of `cap` errors. If exceeded only the overflow counter
|
||||
// will be incremented.
|
||||
//
|
||||
// A `cap` of zero of less means no cap and max size of a slice
|
||||
// on the current platform is the upper bound.
|
||||
func NewWithCap(cap int) *MError {
|
||||
me := New()
|
||||
me.cap = cap
|
||||
return me
|
||||
}
|
||||
|
||||
// Append adds an error to the aggregated error list.
|
||||
func (me *MError) Append(err error) {
|
||||
if err == nil {
|
||||
return
|
||||
}
|
||||
if me.cap > 0 && len(me.errors) >= me.cap {
|
||||
me.overflow++
|
||||
} else {
|
||||
me.errors = append(me.errors, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Errors returns an array of the `error` instances that have been
|
||||
// appended to this `MError`.
|
||||
func (me *MError) Errors() []error {
|
||||
return me.errors
|
||||
}
|
||||
|
||||
// Len returns the number of errors that have been appended.
|
||||
func (me *MError) Len() int {
|
||||
return len(me.errors)
|
||||
}
|
||||
|
||||
// Overflow returns the number of errors that have been truncated
|
||||
// because maximum capacity was exceeded.
|
||||
func (me *MError) Overflow() int {
|
||||
return me.overflow
|
||||
}
|
||||
|
||||
// SetFormatter sets the `FormatterFunc` to be used when `Error` is
|
||||
// called. The previous `FormatterFunc` is returned.
|
||||
func (me *MError) SetFormatter(f FormatterFunc) (old FormatterFunc) {
|
||||
old = me.formatter
|
||||
me.formatter = f
|
||||
return
|
||||
}
|
||||
|
||||
// ErrorOrNil returns nil if this `MError` contains no errors,
|
||||
// otherwise this `MError` is returned.
|
||||
func (me *MError) ErrorOrNil() error {
|
||||
if me == nil || len(me.errors) == 0 {
|
||||
return nil
|
||||
}
|
||||
return me
|
||||
}
|
||||
|
||||
// Error returns a string representation of this MError.
|
||||
// The output format depends on the `Formatter` set for this
|
||||
// merror instance, or the global formatter if none set.
|
||||
func (me *MError) Error() string {
|
||||
f := me.formatter
|
||||
if f == nil {
|
||||
f = GlobalFormatter
|
||||
}
|
||||
return f(me)
|
||||
}
|
Reference in New Issue
Block a user