aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/satori/go.uuid/sql.go
diff options
context:
space:
mode:
authorAlexandre Garand <alexandre.garand@fretlink.com>2019-08-09 15:59:15 +0200
committerAlexandre Garand <alexandre.garand@fretlink.com>2019-08-09 16:39:21 +0200
commit863486a6b71ed0e562a3965bed56465d007b1418 (patch)
treee93f6a687695af86d54237ec9f575d4ef104222d /vendor/github.com/satori/go.uuid/sql.go
parent49c1c7b4dc69ffb9ab52330e6dc52ccdd6351087 (diff)
downloadterraform-provider-statuscake-863486a6b71ed0e562a3965bed56465d007b1418.tar.gz
terraform-provider-statuscake-863486a6b71ed0e562a3965bed56465d007b1418.tar.zst
terraform-provider-statuscake-863486a6b71ed0e562a3965bed56465d007b1418.zip
update vendor and go.modadd_contact_groups
Diffstat (limited to 'vendor/github.com/satori/go.uuid/sql.go')
-rw-r--r--vendor/github.com/satori/go.uuid/sql.go78
1 files changed, 78 insertions, 0 deletions
diff --git a/vendor/github.com/satori/go.uuid/sql.go b/vendor/github.com/satori/go.uuid/sql.go
new file mode 100644
index 0000000..56759d3
--- /dev/null
+++ b/vendor/github.com/satori/go.uuid/sql.go
@@ -0,0 +1,78 @@
1// Copyright (C) 2013-2018 by Maxim Bublis <b@codemonkey.ru>
2//
3// Permission is hereby granted, free of charge, to any person obtaining
4// a copy of this software and associated documentation files (the
5// "Software"), to deal in the Software without restriction, including
6// without limitation the rights to use, copy, modify, merge, publish,
7// distribute, sublicense, and/or sell copies of the Software, and to
8// permit persons to whom the Software is furnished to do so, subject to
9// the following conditions:
10//
11// The above copyright notice and this permission notice shall be
12// included in all copies or substantial portions of the Software.
13//
14// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22package uuid
23
24import (
25 "database/sql/driver"
26 "fmt"
27)
28
29// Value implements the driver.Valuer interface.
30func (u UUID) Value() (driver.Value, error) {
31 return u.String(), nil
32}
33
34// Scan implements the sql.Scanner interface.
35// A 16-byte slice is handled by UnmarshalBinary, while
36// a longer byte slice or a string is handled by UnmarshalText.
37func (u *UUID) Scan(src interface{}) error {
38 switch src := src.(type) {
39 case []byte:
40 if len(src) == Size {
41 return u.UnmarshalBinary(src)
42 }
43 return u.UnmarshalText(src)
44
45 case string:
46 return u.UnmarshalText([]byte(src))
47 }
48
49 return fmt.Errorf("uuid: cannot convert %T to UUID", src)
50}
51
52// NullUUID can be used with the standard sql package to represent a
53// UUID value that can be NULL in the database
54type NullUUID struct {
55 UUID UUID
56 Valid bool
57}
58
59// Value implements the driver.Valuer interface.
60func (u NullUUID) Value() (driver.Value, error) {
61 if !u.Valid {
62 return nil, nil
63 }
64 // Delegate to UUID Value function
65 return u.UUID.Value()
66}
67
68// Scan implements the sql.Scanner interface.
69func (u *NullUUID) Scan(src interface{}) error {
70 if src == nil {
71 u.UUID, u.Valid = Nil, false
72 return nil
73 }
74
75 // Delegate to UUID Scan function
76 u.Valid = true
77 return u.UUID.Scan(src)
78}