1
0
mirror of https://github.com/google/uuid.git synced 2024-11-28 08:49:08 +02:00
Commit Graph

8 Commits

Author SHA1 Message Date
Bryan Matsuo
1c7b0fea16 opitimize json interface methods
A common helper function is used for UUID.String(), UUID.URN(), and
UUID.MarshalJSON().  Any perforance hit in UUID.String() and
UUID.Marshal() appears to be negligable.  The benefit to
UUID.MarshalJSON() is several hundred nanoseconds (23% faster) and 2
allocations (21% fewer bytes).

Some redundant checks are removed from UUID.UnmarshalJSON() method.  The
"encoding/json".Unmarshaler interface specifies that implementations can
assume input is valid JSON content.  This allows one to assume that (1)
input is not empty and (2) if index 0 is a quote, then the content is a
json string and the last index will contain a terminating quote.  The
second point is not completely explicit in the documentation but it is
true in practice (and it is safe to assume -- errors will be caught).
2015-10-10 22:08:33 -07:00
Bryan Matsuo
0ec82b41c6 remove redundant nil checks in UUID.String() and UUID.URN() 2015-10-10 21:41:29 -07:00
Bryan Matsuo
9e4836cc57 do not use fmt.Sprintf() in UUID.URN()
The procedure is the same as UUID.String() (see f4e3abb).  Code is not
shared to ensure that unnecessary bounds checks do not occur.
2015-10-10 21:41:29 -07:00
Bryan Matsuo
71fb85a64c do not use fmt.Sprintf() in UUID.String()
A single array is used as a buffer and "encoding/hex".Encode() hex
encodes directly its final destination.  Loops are avoided because they
are simple enough to unroll manually.
2015-10-10 21:41:29 -07:00
Bryan Matsuo
4e1e17316e use arrays in Parse() for reduced allocation cost and bounds checks
An array is also for hex digit value lookups which seemed to reliably
give a few ns reduction in time.
2015-10-10 21:12:40 -07:00
Paul Borman
2a573a0b4d Move code up one directory 2015-06-03 14:39:07 -07:00
Paul Borman
808d470594 uuid: source re-organization
Move source to uuid subdirectory.
Add in coderviewability.

R=rsc
CC=borman
http://codereview.appspot.com/4838053
2011-08-08 14:34:29 -07:00
Paul Borman
e130d97558 Initial checking of the go-uuid code. 2011-08-08 11:45:10 -07:00