mirror of
				https://github.com/prometheus/prometheus.git
				synced 2025-10-31 08:21:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2016 The etcd Authors
 | |
| //
 | |
| // 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 errors
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"fmt"
 | |
| )
 | |
| 
 | |
| // The MultiError type implements the error interface, and contains the
 | |
| // Errors used to construct it.
 | |
| type MultiError []error
 | |
| 
 | |
| // Returns a concatenated string of the contained errors
 | |
| func (es MultiError) Error() string {
 | |
| 	var buf bytes.Buffer
 | |
| 
 | |
| 	if len(es) > 1 {
 | |
| 		fmt.Fprintf(&buf, "%d errors: ", len(es))
 | |
| 	}
 | |
| 
 | |
| 	for i, err := range es {
 | |
| 		if i != 0 {
 | |
| 			buf.WriteString("; ")
 | |
| 		}
 | |
| 		buf.WriteString(err.Error())
 | |
| 	}
 | |
| 
 | |
| 	return buf.String()
 | |
| }
 | |
| 
 | |
| // Add adds the error to the error list if it is not nil.
 | |
| func (es *MultiError) Add(err error) {
 | |
| 	if err == nil {
 | |
| 		return
 | |
| 	}
 | |
| 	if merr, ok := err.(MultiError); ok {
 | |
| 		*es = append(*es, merr...)
 | |
| 	} else {
 | |
| 		*es = append(*es, err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // Err returns the error list as an error or nil if it is empty.
 | |
| func (es MultiError) Err() error {
 | |
| 	if len(es) == 0 {
 | |
| 		return nil
 | |
| 	}
 | |
| 	return es
 | |
| }
 |