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.
		
		
		
		
		
			
		
			
				
					
					
						
							43 lines
						
					
					
						
							904 B
						
					
					
				
			
		
		
	
	
							43 lines
						
					
					
						
							904 B
						
					
					
				| package govalidator
 | |
| 
 | |
| import "strings"
 | |
| 
 | |
| // Errors is an array of multiple errors and conforms to the error interface.
 | |
| type Errors []error
 | |
| 
 | |
| // Errors returns itself.
 | |
| func (es Errors) Errors() []error {
 | |
| 	return es
 | |
| }
 | |
| 
 | |
| func (es Errors) Error() string {
 | |
| 	var errs []string
 | |
| 	for _, e := range es {
 | |
| 		errs = append(errs, e.Error())
 | |
| 	}
 | |
| 	return strings.Join(errs, ";")
 | |
| }
 | |
| 
 | |
| // Error encapsulates a name, an error and whether there's a custom error message or not.
 | |
| type Error struct {
 | |
| 	Name                     string
 | |
| 	Err                      error
 | |
| 	CustomErrorMessageExists bool
 | |
| 
 | |
| 	// Validator indicates the name of the validator that failed
 | |
| 	Validator string
 | |
| 	Path      []string
 | |
| }
 | |
| 
 | |
| func (e Error) Error() string {
 | |
| 	if e.CustomErrorMessageExists {
 | |
| 		return e.Err.Error()
 | |
| 	}
 | |
| 
 | |
| 	errName := e.Name
 | |
| 	if len(e.Path) > 0 {
 | |
| 		errName = strings.Join(append(e.Path, e.Name), ".")
 | |
| 	}
 | |
| 
 | |
| 	return errName + ": " + e.Err.Error()
 | |
| }
 | |
| 
 |