raw

package
v0.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2022 License: MIT Imports: 6 Imported by: 39

Documentation

Overview

Package raw implements IPLD's raw codec, which simply writes and reads a Node which can be represented as bytes.

The codec can be used with any node which supports AsBytes and AssignBytes. In general, it only makes sense to use this codec on a plain "bytes" node such as github.com/ipld/go-ipld-prime/node/basicnode.Prototype.Bytes.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decode

func Decode(am datamodel.NodeAssembler, r io.Reader) error

Decode implements decoding of a node with the raw codec.

Note that if r has a Bytes method, such as is the case with *bytes.Buffer, we will use those bytes directly to save having to allocate and copy them. The Node interface is defined as immutable, so it is assumed that its bytes won't be modified in-place. Similarly, we assume that the incoming buffer's bytes won't get modified in-place later.

To disable the shortcut above, hide the Bytes method by wrapping the buffer with an io.Reader:

Decode([...], struct{io.Reader}{buf})

func Encode

func Encode(node datamodel.Node, w io.Writer) error

Encode implements encoding of a node with the raw codec.

Note that Encode won't copy the node's bytes as returned by AsBytes, but the call to Write will typically have to copy the bytes anyway.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL