aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-12-11 01:17:47 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-12-11 01:17:47 +0100
commit4e8e616ee9d6bf09786a819b2e7f8da0ddb35970 (patch)
tree8a0073297508d086a98109e8ee24382bd704c136
parentad62ab39c1f5909ed292344a967f86d303018eec (diff)
Parse UID
-rw-r--r--uuid.go22
-rw-r--r--uuid_test.go11
2 files changed, 33 insertions, 0 deletions
diff --git a/uuid.go b/uuid.go
new file mode 100644
index 0000000..a70e995
--- /dev/null
+++ b/uuid.go
@@ -0,0 +1,22 @@
+package anki
+
+import (
+ "encoding/hex"
+ "fmt"
+ "strings"
+)
+
+func ParseUUID(s string) (UUID, error) {
+ s = strings.Replace(s, "-", "", -1)
+ x, err := hex.DecodeString(s)
+ if err != nil {
+ return UUID{}, err
+ }
+ var u UUID
+ copy(u[:], x)
+ return u, nil
+}
+
+func (u UUID) String() string {
+ return fmt.Sprintf("%X-%X-%X-%X-%X", u[:4], u[4:6], u[6:8], u[8:10], u[10:])
+}
diff --git a/uuid_test.go b/uuid_test.go
new file mode 100644
index 0000000..134c868
--- /dev/null
+++ b/uuid_test.go
@@ -0,0 +1,11 @@
+package anki
+
+import "testing"
+
+func TestParseUUID(t *testing.T) {
+ uuid, err := ParseUUID(ServiceUUID)
+ if err != nil {
+ t.Error(err)
+ }
+ t.Log(uuid)
+}