From 76e5fe5a87d7e60919075f96eee599f3c6255a9f Mon Sep 17 00:00:00 2001 From: Qais Patankar Date: Sun, 15 Mar 2020 22:43:46 +0000 Subject: Update vendor yaegashi/msgraph.go to v0.1.2 (2) --- .../github.com/yaegashi/msgraph.go/jsonx/encode.go | 1317 ++++++++++++++++++++ 1 file changed, 1317 insertions(+) create mode 100644 vendor/github.com/yaegashi/msgraph.go/jsonx/encode.go (limited to 'vendor/github.com/yaegashi/msgraph.go/jsonx/encode.go') diff --git a/vendor/github.com/yaegashi/msgraph.go/jsonx/encode.go b/vendor/github.com/yaegashi/msgraph.go/jsonx/encode.go new file mode 100644 index 00000000..7c155502 --- /dev/null +++ b/vendor/github.com/yaegashi/msgraph.go/jsonx/encode.go @@ -0,0 +1,1317 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package json implements encoding and decoding of JSON as defined in +// RFC 7159. The mapping between JSON and Go values is described +// in the documentation for the Marshal and Unmarshal functions. +// +// See "JSON and Go" for an introduction to this package: +// https://golang.org/doc/articles/json_and_go.html +package jsonx + +import ( + "bytes" + "encoding" + "encoding/base64" + "fmt" + "math" + "reflect" + "sort" + "strconv" + "strings" + "sync" + "unicode" + "unicode/utf8" +) + +// Marshal returns the JSON encoding of v. +// +// Marshal traverses the value v recursively. +// If an encountered value implements the Marshaler interface +// and is not a nil pointer, Marshal calls its MarshalJSON method +// to produce JSON. If no MarshalJSON method is present but the +// value implements encoding.TextMarshaler instead, Marshal calls +// its MarshalText method and encodes the result as a JSON string. +// The nil pointer exception is not strictly necessary +// but mimics a similar, necessary exception in the behavior of +// UnmarshalJSON. +// +// Otherwise, Marshal uses the following type-dependent default encodings: +// +// Boolean values encode as JSON booleans. +// +// Floating point, integer, and Number values encode as JSON numbers. +// +// String values encode as JSON strings coerced to valid UTF-8, +// replacing invalid bytes with the Unicode replacement rune. +// So that the JSON will be safe to embed inside HTML