summaryrefslogtreecommitdiff
path: root/vendor/github.com/oschwald/maxminddb-golang/errors.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/oschwald/maxminddb-golang/errors.go')
-rw-r--r--vendor/github.com/oschwald/maxminddb-golang/errors.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/github.com/oschwald/maxminddb-golang/errors.go b/vendor/github.com/oschwald/maxminddb-golang/errors.go
new file mode 100644
index 0000000..1327800
--- /dev/null
+++ b/vendor/github.com/oschwald/maxminddb-golang/errors.go
@@ -0,0 +1,42 @@
+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())
+}