-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodec.go
More file actions
40 lines (35 loc) · 1.16 KB
/
Copy pathcodec.go
File metadata and controls
40 lines (35 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package uuuid
import (
"github.com/gofrs/uuid"
"github.com/pkg/errors"
)
// FromBytes returns a UUID generated from the raw byte slice input.
// It will return an error if the slice isn't 16 bytes long.
func FromBytes(input []byte) (UUID, error) {
u, err := uuid.FromBytes(input)
if err != nil {
err = errors.Wrap(err, "Error converting Bytes to UUID")
return UUID{}, err
}
return UUID{u}, nil
}
// FromBytesOrNil returns a UUID generated from the raw byte slice input.
// Same behavior as FromBytes(), but returns uuid.Nil instead of an error.
func FromBytesOrNil(input []byte) UUID {
return UUID{uuid.FromBytesOrNil(input)}
}
// FromString returns a UUID parsed from the input string.
// Input is expected in a form accepted by UnmarshalText.
func FromString(input string) (UUID, error) {
u, err := uuid.FromString(input)
if err != nil {
err = errors.Wrap(err, "Error converting String to UUID")
return UUID{}, err
}
return UUID{u}, nil
}
// FromStringOrNil returns a UUID parsed from the input string.
// Same behavior as FromString(), but returns uuid.Nil instead of an error.
func FromStringOrNil(input string) UUID {
return UUID{uuid.FromStringOrNil(input)}
}