Documentation
¶
Index ¶
- Variables
- func Equal(a, b []byte) bool
- func FromJSON(doc []byte, v interface{}) ([]byte, error)
- func GetValueByPath(doc []byte, path string) ([]byte, error)
- func MustFromJSON(doc string) []byte
- func MustToJSON(doc []byte) string
- func SetCBOR(marshal func(v interface{}) ([]byte, error), ...)
- func ToJSON(doc []byte, v interface{}) ([]byte, error)
- type AccumulatedCopySizeError
- type CBORType
- type Node
- func (n *Node) FindChildren(tests []*PV, options *Options) (result []*PV, err error)
- func (n *Node) GetChild(path string, options *Options) (*Node, error)
- func (n *Node) GetValue(path string, options *Options) (RawMessage, error)
- func (n *Node) MarshalCBOR() ([]byte, error)
- func (n *Node) MarshalJSON() ([]byte, error)
- func (n *Node) Patch(p Patch, options *Options) error
- func (n *Node) UnmarshalCBOR(data []byte) error
- type Operation
- type Options
- type PV
- type Patch
- type RawMessage
Constants ¶
This section is empty.
Variables ¶
var ( // SupportNegativeIndices decides whether to support non-standard practice of // allowing negative indices to mean indices starting at the end of an array. // Default to true. SupportNegativeIndices bool = true // AccumulatedCopySizeLimit limits the total size increase in bytes caused by // "copy" operations in a patch. AccumulatedCopySizeLimit int64 = 0 )
Functions ¶
func FromJSON ¶
FromJSON converts a JSON-encoded data to a CBOR-encoded data with a optional value as struct container. If v is not nil, it will decode data into v and then encode v to CBOR-encoded data.
func GetValueByPath ¶
GetValueByPath returns the value of a given path in a raw encoded CBOR document.
func MustFromJSON ¶
MustFromJSON converts a JSON-encoded string to a CBOR-encoded data. It will panic if converting failed.
func MustToJSON ¶
MustToJSON converts a CBOR-encoded data to a JSON-encoded string. It will panic if converting failed.
func SetCBOR ¶
func SetCBOR(
marshal func(v interface{}) ([]byte, error),
unmarshal func(data []byte, v interface{}) error,
)
SetCBOR set the underlying global CBOR Marshal and Unmarshal functions. The default is cbor.Marshal and cbor.Unmarshal.
func init() {
var EncMode, _ = cbor.CanonicalEncOptions().EncMode()
var DecMode, _ = cbor.DecOptions{
DupMapKey: cbor.DupMapKeyQuiet,
IndefLength: cbor.IndefLengthForbidden,
}.DecMode()
cborpatch.SetCBOR(EncMode.Marshal, DecMode.Unmarshal)
}
Types ¶
type AccumulatedCopySizeError ¶
type AccumulatedCopySizeError struct {
// contains filtered or unexported fields
}
AccumulatedCopySizeError is an error type returned when the accumulated size increase caused by copy operations in a patch operation has exceeded the limit.
func NewAccumulatedCopySizeError ¶
func NewAccumulatedCopySizeError(l, a int64) *AccumulatedCopySizeError
NewAccumulatedCopySizeError returns an AccumulatedCopySizeError.
func (*AccumulatedCopySizeError) Error ¶
func (a *AccumulatedCopySizeError) Error() string
Error implements the error interface.
type CBORType ¶
type CBORType uint8
CBORType is the type of a raw encoded CBOR value.
const ( CBORTypePositiveInt CBORType = 0x00 CBORTypeNegativeInt CBORType = 0x20 CBORTypeByteString CBORType = 0x40 CBORTypeTextString CBORType = 0x60 CBORTypeArray CBORType = 0x80 CBORTypeMap CBORType = 0xa0 CBORTypeTag CBORType = 0xc0 CBORTypePrimitives CBORType = 0xe0 CBORTypeInvalid CBORType = 0xff )
Predefined CBORTypes.
func ReadCBORType ¶
ReadCBORType returns the type of a raw encoded CBOR value.
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
Node represents a lazy parsing CBOR document.
func NewNode ¶
func NewNode(doc RawMessage) *Node
NewNode returns a new Node with the given raw encoded CBOR document. a nil or empty raw document is equal to CBOR null.
func (*Node) FindChildren ¶
FindChildren returns the children nodes that pass the given tests in the node.
func (*Node) GetValue ¶
func (n *Node) GetValue(path string, options *Options) (RawMessage, error)
GetValue returns the child node of a given path in the node.
func (*Node) MarshalCBOR ¶
MarshalCBOR implements the cbor.Marshaler interface.
func (*Node) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface.
func (*Node) UnmarshalCBOR ¶
UnmarshalCBOR implements the cbor.Unmarshaler interface.
type Operation ¶
type Operation struct {
Op string `cbor:"op"`
Path string `cbor:"path"`
From string `cbor:"from,omitempty"`
Value RawMessage `cbor:"value,omitempty"`
}
Operation is a single CBOR-Patch step, such as a single 'add' operation.
type Options ¶
type Options struct {
// SupportNegativeIndices decides whether to support non-standard practice of
// allowing negative indices to mean indices starting at the end of an array.
// Default to true.
SupportNegativeIndices bool
// AccumulatedCopySizeLimit limits the total size increase in bytes caused by
// "copy" operations in a patch.
AccumulatedCopySizeLimit int64
// AllowMissingPathOnRemove indicates whether to fail "remove" operations when the target path is missing.
// Default to false.
AllowMissingPathOnRemove bool
// EnsurePathExistsOnAdd instructs cbor-patch to recursively create the missing parts of path on "add" operation.
// Default to false.
EnsurePathExistsOnAdd bool
}
Options specifies options for calls to ApplyWithOptions. Use NewOptions to obtain default values for Options.
func NewOptions ¶
func NewOptions() *Options
NewOptions creates a default set of options for calls to ApplyWithOptions.
type PV ¶
type PV struct {
Path string `cbor:"path"`
Value RawMessage `cbor:"value"`
}
PV represents a node with a path and a raw encoded CBOR value.