ducky/devices
2015-11-12
Parent:b6494e1a499e
ducky/devices/vendor/code.google.com/p/go-uuid/uuid/json.go
Minimal Memstore implementation. Create an in-memory version of the Storer that meets the minimal requirements set by our Storer tests so far.
| paddy@0 | 1 // Copyright 2014 Google Inc. All rights reserved. |
| paddy@0 | 2 // Use of this source code is governed by a BSD-style |
| paddy@0 | 3 // license that can be found in the LICENSE file. |
| paddy@0 | 4 |
| paddy@0 | 5 package uuid |
| paddy@0 | 6 |
| paddy@0 | 7 import "errors" |
| paddy@0 | 8 |
| paddy@0 | 9 func (u UUID) MarshalJSON() ([]byte, error) { |
| paddy@0 | 10 if len(u) == 0 { |
| paddy@0 | 11 return []byte(`""`), nil |
| paddy@0 | 12 } |
| paddy@0 | 13 return []byte(`"` + u.String() + `"`), nil |
| paddy@0 | 14 } |
| paddy@0 | 15 |
| paddy@0 | 16 func (u *UUID) UnmarshalJSON(data []byte) error { |
| paddy@0 | 17 if len(data) == 0 || string(data) == `""` { |
| paddy@0 | 18 return nil |
| paddy@0 | 19 } |
| paddy@0 | 20 if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' { |
| paddy@0 | 21 return errors.New("invalid UUID format") |
| paddy@0 | 22 } |
| paddy@0 | 23 data = data[1 : len(data)-1] |
| paddy@0 | 24 uu := Parse(string(data)) |
| paddy@0 | 25 if uu == nil { |
| paddy@0 | 26 return errors.New("invalid UUID format") |
| paddy@0 | 27 } |
| paddy@0 | 28 *u = uu |
| paddy@0 | 29 return nil |
| paddy@0 | 30 } |