Documentation ¶
Overview ¶
Package resolver implements utilities for resolving paths within ipfs.
Index ¶
- Variables
- func ResolveSingle(ctx context.Context, ds ipld.NodeGetter, nd ipld.Node, names []string) (*ipld.Link, []string, error)
- type ErrNoLink
- type ResolveOnce
- type Resolver
- func (r *Resolver) ResolveLinks(ctx context.Context, ndd ipld.Node, names []string) ([]ipld.Node, error)
- func (r *Resolver) ResolvePath(ctx context.Context, fpath path.Path) (ipld.Node, error)
- func (r *Resolver) ResolvePathComponents(ctx context.Context, fpath path.Path) ([]ipld.Node, error)
- func (r *Resolver) ResolveToLastNode(ctx context.Context, fpath path.Path) (cid.Cid, []string, error)
Constants ¶
This section is empty.
Variables ¶
var ErrNoComponents = errors.New(
"path must contain at least one component")
ErrNoComponents is used when Paths after a protocol do not contain at least one component
Functions ¶
Types ¶
type ResolveOnce ¶
type ResolveOnce func(ctx context.Context, ds ipld.NodeGetter, nd ipld.Node, names []string) (*ipld.Link, []string, error)
ResolveOnce resolves path through a single node
type Resolver ¶
type Resolver struct { DAG ipld.NodeGetter ResolveOnce ResolveOnce }
Resolver provides path resolution to IPFS It has a pointer to a DAGService, which is uses to resolve nodes. TODO: now that this is more modular, try to unify this code with the
the resolvers in namesys
func NewBasicResolver ¶
func NewBasicResolver(ds ipld.DAGService) *Resolver
NewBasicResolver constructs a new basic resolver.
func (*Resolver) ResolveLinks ¶
func (r *Resolver) ResolveLinks(ctx context.Context, ndd ipld.Node, names []string) ([]ipld.Node, error)
ResolveLinks iteratively resolves names by walking the link hierarchy. Every node is fetched from the DAGService, resolving the next name. Returns the list of nodes forming the path, starting with ndd. This list is guaranteed never to be empty.
ResolveLinks(nd, []string{"foo", "bar", "baz"}) would retrieve "baz" in ("bar" in ("foo" in nd.Links).Links).Links
func (*Resolver) ResolvePath ¶
ResolvePath fetches the node for given path. It returns the last item returned by ResolvePathComponents.
func (*Resolver) ResolvePathComponents ¶
ResolvePathComponents fetches the nodes for each segment of the given path. It uses the first path component as a hash (key) of the first node, then resolves all other components walking the links, with ResolveLinks.