-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy patheasyjson_template.go
47 lines (37 loc) · 1.14 KB
/
easyjson_template.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package nan
import (
jlexer "github.com/mailru/easyjson/jlexer"
jwriter "github.com/mailru/easyjson/jwriter"
)
// MarshalEasyJSON - marshaller for easyjson
func (n nullTemplateType) MarshalEasyJSON(out *jwriter.Writer) {
if !n.Valid {
out.RawString("null")
return
}
n.NullTemplateValue.MarshalEasyJSON(out) // EasyJSON template
// JSON template
enc, err := n.NullTemplateValue.MarshalJSON() // JSON template
if err != nil { // JSON template
out.Error = err // JSON template
return // JSON template
} // JSON template
// JSON template
out.RawString(string(enc)) // JSON template
}
// UnmarshalEasyJSON - unmarshaller for easyjson
func (n *nullTemplateType) UnmarshalEasyJSON(in *jlexer.Lexer) {
if in.IsNull() {
*n = nullTemplateType{}
in.Skip()
return
}
var val initialTemplateType
val.UnmarshalEasyJSON(in) // EasyJSON template
err := val.UnmarshalJSON(in.Raw()) // JSON template
if err != nil { // JSON template
in.AddError(err) // JSON template
return // JSON template
} // JSON template
*n = nullTemplateType{NullTemplateValue: val, Valid: true}
}