43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package maxminddb
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"reflect"
 | 
						|
)
 | 
						|
 | 
						|
// InvalidDatabaseError is returned when the database contains invalid data
 | 
						|
// and cannot be parsed.
 | 
						|
type InvalidDatabaseError struct {
 | 
						|
	message string
 | 
						|
}
 | 
						|
 | 
						|
func newOffsetError() InvalidDatabaseError {
 | 
						|
	return InvalidDatabaseError{"unexpected end of database"}
 | 
						|
}
 | 
						|
 | 
						|
func newInvalidDatabaseError(format string, args ...interface{}) InvalidDatabaseError {
 | 
						|
	return InvalidDatabaseError{fmt.Sprintf(format, args...)}
 | 
						|
}
 | 
						|
 | 
						|
func (e InvalidDatabaseError) Error() string {
 | 
						|
	return e.message
 | 
						|
}
 | 
						|
 | 
						|
// UnmarshalTypeError is returned when the value in the database cannot be
 | 
						|
// assigned to the specified data type.
 | 
						|
type UnmarshalTypeError struct {
 | 
						|
	Value string       // stringified copy of the database value that caused the error
 | 
						|
	Type  reflect.Type // type of the value that could not be assign to
 | 
						|
}
 | 
						|
 | 
						|
func newUnmarshalTypeError(value interface{}, rType reflect.Type) UnmarshalTypeError {
 | 
						|
	return UnmarshalTypeError{
 | 
						|
		Value: fmt.Sprintf("%v", value),
 | 
						|
		Type:  rType,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (e UnmarshalTypeError) Error() string {
 | 
						|
	return fmt.Sprintf("maxminddb: cannot unmarshal %s into type %s", e.Value, e.Type.String())
 | 
						|
}
 |