commit 8e88d6561c85120488f0bac6e940f56a144f405d
parent 238264649b0e7252b6b1f169eb77b7a9ddb49523
Author: Yongbin Kim <iam@yongbin.kim>
Date: Sun, 27 Aug 2023 00:53:53 +0900
feat: Add From(String|Bytes) function
Signed-off-by: Yongbin Kim <iam@yongbin.kim>
Diffstat:
M | id.go | | | 19 | +++++++++++++++++++ |
1 file changed, 19 insertions(+), 0 deletions(-)
diff --git a/id.go b/id.go
@@ -1,5 +1,7 @@
package yuid
+import "errors"
+
const IDSize = 20
type ID [IDSize]byte
@@ -10,6 +12,23 @@ var (
Nil ID
)
+var (
+ ErrInvalidIDLength = errors.New("invalid ID length")
+)
+
+func FromString(s string) (ID, error) {
+ return FromBytes([]byte(s))
+}
+
+func FromBytes(b []byte) (ID, error) {
+ if len(b) != IDSize {
+ return Nil, errors.New("invalid ID length")
+ }
+ var id ID
+ copy(id[:], b)
+ return id, nil
+}
+
func (id ID) String() string {
return string(id[:])
}