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 ParseLuxID(idStr string) (LuxID, error) { uuid, err := uuid.Parse(idStr) if err != nil { return LuxID{}, err } return LuxID{uuid}, nil } 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() }