...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package strfmt
16
17 import (
18 bsonprim "k8s.io/kube-openapi/pkg/validation/strfmt/bson"
19 )
20
21 func init() {
22 var id ObjectId
23
24 Default.Add("bsonobjectid", &id, IsBSONObjectID)
25 }
26
27
28 func IsBSONObjectID(str string) bool {
29 _, err := bsonprim.ObjectIDFromHex(str)
30 return err == nil
31 }
32
33
34
35
36 type ObjectId bsonprim.ObjectID
37
38
39 func NewObjectId(hex string) ObjectId {
40 oid, err := bsonprim.ObjectIDFromHex(hex)
41 if err != nil {
42 panic(err)
43 }
44 return ObjectId(oid)
45 }
46
47
48 func (id ObjectId) MarshalText() ([]byte, error) {
49 oid := bsonprim.ObjectID(id)
50 if oid == bsonprim.NilObjectID {
51 return nil, nil
52 }
53 return []byte(oid.Hex()), nil
54 }
55
56
57 func (id *ObjectId) UnmarshalText(data []byte) error {
58 if len(data) == 0 {
59 *id = ObjectId(bsonprim.NilObjectID)
60 return nil
61 }
62 oidstr := string(data)
63 oid, err := bsonprim.ObjectIDFromHex(oidstr)
64 if err != nil {
65 return err
66 }
67 *id = ObjectId(oid)
68 return nil
69 }
70
71 func (id ObjectId) String() string {
72 return bsonprim.ObjectID(id).String()
73 }
74
75
76 func (id ObjectId) MarshalJSON() ([]byte, error) {
77 return bsonprim.ObjectID(id).MarshalJSON()
78 }
79
80
81 func (id *ObjectId) UnmarshalJSON(data []byte) error {
82 var obj bsonprim.ObjectID
83 if err := obj.UnmarshalJSON(data); err != nil {
84 return err
85 }
86 *id = ObjectId(obj)
87 return nil
88 }
89
90
91 func (id *ObjectId) DeepCopyInto(out *ObjectId) {
92 *out = *id
93 }
94
95
96 func (id *ObjectId) DeepCopy() *ObjectId {
97 if id == nil {
98 return nil
99 }
100 out := new(ObjectId)
101 id.DeepCopyInto(out)
102 return out
103 }
104
View as plain text