diff --git a/core/coreapi/coreapi.go b/core/coreapi/coreapi.go index c34bccb36..5169748de 100644 --- a/core/coreapi/coreapi.go +++ b/core/coreapi/coreapi.go @@ -59,11 +59,11 @@ func (api *CoreAPI) Pin() coreiface.PinAPI { // ResolveNode resolves the path `p` using Unixfx resolver, gets and returns the // resolved Node. -func (api *CoreAPI) ResolveNode(ctx context.Context, p coreiface.Path) (coreiface.Node, error) { +func (api *CoreAPI) ResolveNode(ctx context.Context, p coreiface.Path) (ipld.Node, error) { return resolveNode(ctx, api.node.DAG, api.node.Namesys, p) } -func resolveNode(ctx context.Context, ng ipld.NodeGetter, nsys namesys.NameSystem, p coreiface.Path) (coreiface.Node, error) { +func resolveNode(ctx context.Context, ng ipld.NodeGetter, nsys namesys.NameSystem, p coreiface.Path) (ipld.Node, error) { p, err := resolvePath(ctx, ng, nsys, p) if err != nil { return nil, err diff --git a/core/coreapi/dag.go b/core/coreapi/dag.go index 51ccb8faa..443d4542f 100644 --- a/core/coreapi/dag.go +++ b/core/coreapi/dag.go @@ -12,6 +12,7 @@ import ( coredag "github.com/ipfs/go-ipfs/core/coredag" cid "gx/ipfs/QmcZfnkapfECQGcLZaf9B79NRg7cRa9EnZh4LSbkCzwNvY/go-cid" + ipld "gx/ipfs/Qme5bWv7wtjUNGsK2BNGVUFPKiuxWrsqrtvYwCLRw8YFES/go-ipld-format" ) type DagAPI struct { @@ -50,7 +51,7 @@ func (api *DagAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.DagPut } // Get resolves `path` using Unixfs resolver, returns the resolved Node. -func (api *DagAPI) Get(ctx context.Context, path coreiface.Path) (coreiface.Node, error) { +func (api *DagAPI) Get(ctx context.Context, path coreiface.Path) (ipld.Node, error) { return api.core().ResolveNode(ctx, path) } diff --git a/core/coreapi/interface/interface.go b/core/coreapi/interface/interface.go index 4d68b5f4b..02525c0d2 100644 --- a/core/coreapi/interface/interface.go +++ b/core/coreapi/interface/interface.go @@ -30,11 +30,6 @@ type Path interface { Resolved() bool } -// TODO: should we really copy these? -// if we didn't, godoc would generate nice links straight to go-ipld-format -type Node ipld.Node -type Link ipld.Link - type Reader interface { io.ReadSeeker io.Closer @@ -114,7 +109,7 @@ type CoreAPI interface { // ResolveNode resolves the path (if not resolved already) using Unixfs // resolver, gets and returns the resolved Node - ResolveNode(context.Context, Path) (Node, error) + ResolveNode(context.Context, Path) (ipld.Node, error) } // UnixfsAPI is the basic interface to immutable files in IPFS @@ -126,7 +121,7 @@ type UnixfsAPI interface { Cat(context.Context, Path) (Reader, error) // Ls returns the list of links in a directory - Ls(context.Context, Path) ([]*Link, error) + Ls(context.Context, Path) ([]*ipld.Link, error) } // BlockAPI specifies the interface to the block layer @@ -183,7 +178,7 @@ type DagAPI interface { WithHash(mhType uint64, mhLen int) options.DagPutOption // Get attempts to resolve and get the node specified by the path - Get(ctx context.Context, path Path) (Node, error) + Get(ctx context.Context, path Path) (ipld.Node, error) // Tree returns list of paths within a node specified by the path. Tree(ctx context.Context, path Path, opts ...options.DagTreeOption) ([]Path, error) @@ -272,7 +267,7 @@ type KeyAPI interface { // for manipulating MerkleDAG data structures. type ObjectAPI interface { // New creates new, empty (by default) dag-node. - New(context.Context, ...options.ObjectNewOption) (Node, error) + New(context.Context, ...options.ObjectNewOption) (ipld.Node, error) // WithType is an option for New which allows to change the type of created // dag node. @@ -302,13 +297,13 @@ type ObjectAPI interface { WithDataType(t string) options.ObjectPutOption // Get returns the node for the path - Get(context.Context, Path) (Node, error) + Get(context.Context, Path) (ipld.Node, error) // Data returns reader for data of the node Data(context.Context, Path) (io.Reader, error) // Links returns lint or links the node contains - Links(context.Context, Path) ([]*Link, error) + Links(context.Context, Path) ([]*ipld.Link, error) // Stat returns information about the node Stat(context.Context, Path) (*ObjectStat, error) diff --git a/core/coreapi/object.go b/core/coreapi/object.go index 5c08024c9..00edb3101 100644 --- a/core/coreapi/object.go +++ b/core/coreapi/object.go @@ -38,7 +38,7 @@ type Node struct { Data string } -func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) (coreiface.Node, error) { +func (api *ObjectAPI) New(ctx context.Context, opts ...caopts.ObjectNewOption) (ipld.Node, error) { options, err := caopts.ObjectNewOptions(opts...) if err != nil { return nil, err @@ -127,7 +127,7 @@ func (api *ObjectAPI) Put(ctx context.Context, src io.Reader, opts ...caopts.Obj return ParseCid(dagnode.Cid()), nil } -func (api *ObjectAPI) Get(ctx context.Context, path coreiface.Path) (coreiface.Node, error) { +func (api *ObjectAPI) Get(ctx context.Context, path coreiface.Path) (ipld.Node, error) { return api.core().ResolveNode(ctx, path) } @@ -145,16 +145,16 @@ func (api *ObjectAPI) Data(ctx context.Context, path coreiface.Path) (io.Reader, return bytes.NewReader(pbnd.Data()), nil } -func (api *ObjectAPI) Links(ctx context.Context, path coreiface.Path) ([]*coreiface.Link, error) { +func (api *ObjectAPI) Links(ctx context.Context, path coreiface.Path) ([]*ipld.Link, error) { nd, err := api.core().ResolveNode(ctx, path) if err != nil { return nil, err } links := nd.Links() - out := make([]*coreiface.Link, len(links)) + out := make([]*ipld.Link, len(links)) for n, l := range links { - out[n] = (*coreiface.Link)(l) + out[n] = (*ipld.Link)(l) } return out, nil diff --git a/core/coreapi/unixfs.go b/core/coreapi/unixfs.go index f6869619b..79d3dfd92 100644 --- a/core/coreapi/unixfs.go +++ b/core/coreapi/unixfs.go @@ -48,7 +48,7 @@ func (api *UnixfsAPI) Cat(ctx context.Context, p coreiface.Path) (coreiface.Read // Ls returns the contents of an IPFS or IPNS object(s) at path p, with the format: // ` ` -func (api *UnixfsAPI) Ls(ctx context.Context, p coreiface.Path) ([]*coreiface.Link, error) { +func (api *UnixfsAPI) Ls(ctx context.Context, p coreiface.Path) ([]*ipld.Link, error) { dagnode, err := api.core().ResolveNode(ctx, p) if err != nil { return nil, err @@ -69,9 +69,9 @@ func (api *UnixfsAPI) Ls(ctx context.Context, p coreiface.Path) ([]*coreiface.Li return nil, err } - links := make([]*coreiface.Link, len(ndlinks)) + links := make([]*ipld.Link, len(ndlinks)) for i, l := range ndlinks { - links[i] = &coreiface.Link{Name: l.Name, Size: l.Size, Cid: l.Cid} + links[i] = &ipld.Link{Name: l.Name, Size: l.Size, Cid: l.Cid} } return links, nil }