diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2018-08-22 10:59:53 -0400 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-08-24 19:19:43 +0000 |
commit | 20a625ba776aee115b872d092a61313fbc8240be (patch) | |
tree | 61d57b261445769987a9215e26db678334b98327 /vendor/github.com/mailru/easyjson/raw.go | |
parent | 714dbbda9e1f3ec98d75a07ed4c5442ea6540680 (diff) | |
download | podman-20a625ba776aee115b872d092a61313fbc8240be.tar.gz podman-20a625ba776aee115b872d092a61313fbc8240be.tar.bz2 podman-20a625ba776aee115b872d092a61313fbc8240be.zip |
Vendor easyjson code to fix build
To ensure we can build without easyjson installed, vendor the
easyjson repository as the generated files use the easyjson
library.
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Closes: #1322
Approved by: mheon
Diffstat (limited to 'vendor/github.com/mailru/easyjson/raw.go')
-rw-r--r-- | vendor/github.com/mailru/easyjson/raw.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/github.com/mailru/easyjson/raw.go b/vendor/github.com/mailru/easyjson/raw.go new file mode 100644 index 000000000..81bd002e1 --- /dev/null +++ b/vendor/github.com/mailru/easyjson/raw.go @@ -0,0 +1,45 @@ +package easyjson + +import ( + "github.com/mailru/easyjson/jlexer" + "github.com/mailru/easyjson/jwriter" +) + +// RawMessage is a raw piece of JSON (number, string, bool, object, array or +// null) that is extracted without parsing and output as is during marshaling. +type RawMessage []byte + +// MarshalEasyJSON does JSON marshaling using easyjson interface. +func (v *RawMessage) MarshalEasyJSON(w *jwriter.Writer) { + if len(*v) == 0 { + w.RawString("null") + } else { + w.Raw(*v, nil) + } +} + +// UnmarshalEasyJSON does JSON unmarshaling using easyjson interface. +func (v *RawMessage) UnmarshalEasyJSON(l *jlexer.Lexer) { + *v = RawMessage(l.Raw()) +} + +// UnmarshalJSON implements encoding/json.Unmarshaler interface. +func (v *RawMessage) UnmarshalJSON(data []byte) error { + *v = data + return nil +} + +var nullBytes = []byte("null") + +// MarshalJSON implements encoding/json.Marshaler interface. +func (v RawMessage) MarshalJSON() ([]byte, error) { + if len(v) == 0 { + return nullBytes, nil + } + return v, nil +} + +// IsDefined is required for integration with omitempty easyjson logic. +func (v *RawMessage) IsDefined() bool { + return len(*v) > 0 +} |