1
0
mirror of https://github.com/google/uuid.git synced 2025-09-16 09:16:30 +02:00
Go to file
Joe Wreschnig edef28d0c8 Use a custom error type for invalid lengths, replacing fmt.Errorf (#69)
* Add benchmarks for different kinds of invalid UUIDs

Also add a test case for too-short UUIDs to ensure behavior doesn’t
change.

* Use a custom error type for invalid lengths, replacing `fmt.Errorf`

This significantly improves the speed of failed parses due to wrong
lengths. Previously the `fmt.Errorf` call dominated, making this the
most expensive error and more expensive than successfully parsing:

    BenchmarkParse-4                 29226529        36.1 ns/op
    BenchmarkParseBadLength-4         6923106       174 ns/op
    BenchmarkParseLen32Truncated-4   26641954        38.1 ns/op
    BenchmarkParseLen36Corrupted-4   19405598        59.5 ns/op

When the formatting is not required and done on-demand, the failure per
se is much faster:

    BenchmarkParse-4                 29641700        36.3 ns/op
    BenchmarkParseBadLength-4        58602537        20.0 ns/op
    BenchmarkParseLen32Truncated-4   30664791        43.6 ns/op
    BenchmarkParseLen36Corrupted-4   18882410        61.9 ns/op
2020-12-30 13:35:21 -06:00
2016-11-28 11:12:14 -08:00
2018-09-17 15:06:12 +02:00
2017-11-22 06:47:31 +01:00
2015-06-03 14:39:07 -07:00
2017-11-29 12:54:27 +00:00
2017-11-29 12:54:27 +00:00
2020-03-04 18:59:31 +04:00
2017-11-22 06:47:31 +01:00
2017-11-22 06:14:10 +01:00
2017-03-03 14:59:38 -08:00
2017-11-22 06:14:10 +01:00
2020-07-02 13:56:42 -05:00

uuid build status

The uuid package generates and inspects UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.

This package is based on the github.com/pborman/uuid package (previously named code.google.com/p/go-uuid). It differs from these earlier packages in that a UUID is a 16 byte array rather than a byte slice. One loss due to this change is the ability to represent an invalid UUID (vs a NIL UUID).

Install

go get github.com/google/uuid

Documentation

GoDoc

Full go doc style documentation for the package can be viewed online without installing this package by using the GoDoc site here: http://pkg.go.dev/github.com/google/uuid

Description
Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
Readme BSD-3-Clause 1,022 KiB
Languages
Go 100%