aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2018-04-22 21:25:06 +0300
committerTulir Asokan <tulir@maunium.net>2018-04-22 21:25:51 +0300
commit64fa922ec013079f8f0c90fc9e93c56db3611d30 (patch)
tree7bb9b40f57b8368ef0f5eeccea02d80e54796927 /vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go
parentbfb5f0dd457be326b1ae7638a64d2e79cbace371 (diff)
Switch to dep
Diffstat (limited to 'vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go')
-rw-r--r--vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go b/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go
new file mode 100644
index 0000000..86a5ed9
--- /dev/null
+++ b/vendor/github.com/lucasb-eyer/go-colorful/hexcolor.go
@@ -0,0 +1,37 @@
+package colorful
+
+import (
+ "database/sql/driver"
+ "fmt"
+ "reflect"
+)
+
+// A HexColor is a Color stored as a hex string "#rrggbb". It implements the
+// database/sql.Scanner and database/sql/driver.Value interfaces.
+type HexColor Color
+
+type errUnsupportedType struct {
+ got interface{}
+ want reflect.Type
+}
+
+func (hc *HexColor) Scan(value interface{}) error {
+ s, ok := value.(string)
+ if !ok {
+ return errUnsupportedType{got: reflect.TypeOf(value), want: reflect.TypeOf("")}
+ }
+ c, err := Hex(s)
+ if err != nil {
+ return err
+ }
+ *hc = HexColor(c)
+ return nil
+}
+
+func (hc *HexColor) Value() (driver.Value, error) {
+ return Color(*hc).Hex(), nil
+}
+
+func (e errUnsupportedType) Error() string {
+ return fmt.Sprintf("unsupported type: got %v, want a %s", e.got, e.want)
+}