Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/utils/json/message.go
2070 views
1
package json
2
3
import "errors"
4
5
// Message is a raw encoded JSON value.
6
// It implements [Marshaler] and [Unmarshaler] and can
7
// be used to delay JSON decoding or precompute a JSON encoding.
8
//
9
// Copied from: https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/encoding/json/stream.go;l=256-276
10
type Message []byte
11
12
// MarshalJSON returns m as the JSON encoding of m.
13
//
14
// Copied from: https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/encoding/json/stream.go;l=256-276
15
func (m Message) MarshalJSON() ([]byte, error) {
16
if m == nil {
17
return []byte("null"), nil
18
}
19
return m, nil
20
}
21
22
// UnmarshalJSON sets *m to a copy of data.
23
//
24
// Copied from: https://cs.opensource.google/go/go/+/refs/tags/go1.23.6:src/encoding/json/stream.go;l=256-276
25
func (m *Message) UnmarshalJSON(data []byte) error {
26
if m == nil {
27
return errors.New("json.Message: UnmarshalJSON on nil pointer")
28
}
29
*m = append((*m)[0:0], data...)
30
return nil
31
}
32
33