lux/proto/lux_id.go

34 lines
504 B
Go

package proto
import "github.com/google/uuid"
type LuxID struct{ uuid.UUID }
const LUX_PROTO_ID_SIZE = 16
func NewLuxID() LuxID {
return LuxID{uuid.New()}
}
func (id *LuxID) Read(rd *LuxBuffer) error {
bytes, err := rd.ReadNext(16)
if err != nil {
return err
}
_id, err := uuid.FromBytes(bytes)
if err != nil {
return err
}
id.UUID = _id
return nil
}
func (id *LuxID) Write(wd *LuxBuffer) {
wd.WriteBytes(id.UUID[:])
}
func (id *LuxID) String() string {
return id.UUID.String()
}