diff options
Diffstat (limited to 'dependencies/pkg/mod/github.com/google/uuid@v1.6.0/marshal.go')
-rw-r--r-- | dependencies/pkg/mod/github.com/google/uuid@v1.6.0/marshal.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/google/uuid@v1.6.0/marshal.go b/dependencies/pkg/mod/github.com/google/uuid@v1.6.0/marshal.go new file mode 100644 index 0000000..14bd340 --- /dev/null +++ b/dependencies/pkg/mod/github.com/google/uuid@v1.6.0/marshal.go @@ -0,0 +1,38 @@ +// Copyright 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import "fmt" + +// MarshalText implements encoding.TextMarshaler. +func (uuid UUID) MarshalText() ([]byte, error) { + var js [36]byte + encodeHex(js[:], uuid) + return js[:], nil +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (uuid *UUID) UnmarshalText(data []byte) error { + id, err := ParseBytes(data) + if err != nil { + return err + } + *uuid = id + return nil +} + +// MarshalBinary implements encoding.BinaryMarshaler. +func (uuid UUID) MarshalBinary() ([]byte, error) { + return uuid[:], nil +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler. +func (uuid *UUID) UnmarshalBinary(data []byte) error { + if len(data) != 16 { + return fmt.Errorf("invalid UUID (got %d bytes)", len(data)) + } + copy(uuid[:], data) + return nil +} |