yuid

A small, unique, URL-safe ID generator written in Go.
git clone git://git.lair.cx/yuid
Log | Files | Refs | README | LICENSE

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:
Mid.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[:]) }