ipldlegacy

package module
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2021 License: Apache-2.0, MIT Imports: 14 Imported by: 36

README

Go-ipld-legacy

A compatibility layer between go-ipld-prime and go-ipld-format

Lead Maintainer

Hannah Howard

Contributing

Contributions are welcome! This repository is part of the IPFS project and therefore governed by our contributing guidelines.

License

SPDX-License-Identifier: Apache-2.0 OR MIT

Documentation

Index

Constants

View Source
const (
	// ErrNonLink is returned when ResolveLink is called on a node that is not a link
	ErrNonLink = errorType("non-link found at given path")
	// ErrNoSuchLink is returned when ResolveLink is called on a path that does not exist
	ErrNoSuchLink = errorType("no such link found")
	// ErrArrayOutOfRange is returned when Resolve link is called on a list that where the index is out of range
	ErrArrayOutOfRange = errorType("array index out of range")
	// ErrNoLinks is returned when we try to traverse through a terminal
	ErrNoLinks = errorType("tried to resolve through object that had no links")
)

Variables

This section is empty.

Functions

func ErrorAtPath

func ErrorAtPath(base ipld.Path, baseError error) error

func ErrorAtPathSegment

func ErrorAtPathSegment(seg ipld.PathSegment, base ipld.Path, baseError error) error

func RegisterCodec

func RegisterCodec(codec uint64, prototype ipld.NodePrototype, converter NodeConverter)

RegisterCodec registers a specialized prototype & converter for a specific codec

Types

type LegacyNode

type LegacyNode struct {
	blocks.Block
	ipld.Node
}

LegacyNode wraps a go-ipld-prime node & a block so that it can be treated as a legacy ipld format node

func (*LegacyNode) Copy

func (ln *LegacyNode) Copy() format.Node

Copy returns a deep copy of this node

func (ln *LegacyNode) Links() []*format.Link

Links is a helper function that returns all links within this object

func (*LegacyNode) Resolve

func (ln *LegacyNode) Resolve(path []string) (interface{}, []string, error)

Resolve resolves a path through this node, stopping at any link boundary and returning the object found as well as the remaining path to traverse

func (ln *LegacyNode) ResolveLink(path []string) (*format.Link, []string, error)

ResolveLink is a helper function that calls resolve and asserts the output is a link

func (*LegacyNode) Size

func (ln *LegacyNode) Size() (uint64, error)

Size returns the size in bytes of the serialized object

func (*LegacyNode) Stat

func (ln *LegacyNode) Stat() (*format.NodeStat, error)

TODO: not sure if stat deserves to stay

func (*LegacyNode) Tree

func (ln *LegacyNode) Tree(path string, depth int) []string

Tree lists all paths within the object under 'path', and up to the given depth. To list the entire object (similar to `find .`) pass "" and -1

type NodeConverter

type NodeConverter func(b blocks.Block, nd ipld.Node) (UniversalNode, error)

NodeConverter converts a go-ipld-prime node + block combination to a UniversalNode that satisfies both current and legacy ipld formats

type UniversalNode

type UniversalNode interface {
	ipld.Node
	format.Node
}

UniversalNode satisfies both go-ipld-prime interfaces and legacy interfaces

func DecodeNode

func DecodeNode(ctx context.Context, b blocks.Block) (UniversalNode, error)

DecodeNode builds a UniversalNode from a block

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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