Documentation
¶
Index ¶
- Variables
- func DigestType() ipldschema.Type
- func HeadersType() ipldschema.Type
- func LoadSchema(name string, r io.Reader) (*schema.TypeSystem, error)
- func LoadSchemaBytes(src []byte) (*schema.TypeSystem, error)
- func LoadSchemaFile(path string) (*schema.TypeSystem, error)
- type Await
- type Blob
- type DigestModel
- type HasMultihash
- type HeadersModel
- type Promise
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrWrongLength = errors.New("length must be 32") ErrInvalidSign = errors.New("big int sign must be 0 or 1") )
View Source
var BigIntConverter = options.NamedBytesConverter("BigInt", func(b []byte) (big.Int, error) { if len(b) == 0 { return *big.NewInt(0), nil } var negative bool switch b[0] { case 0: negative = false case 1: negative = true default: return *big.NewInt(0), ErrInvalidSign } n := big.NewInt(0).SetBytes(b[1:]) if negative { n.Neg(n) } return *n, nil }, func(n big.Int) ([]byte, error) { switch { case n.Sign() > 0: return append([]byte{0}, n.Bytes()...), nil case n.Sign() < 0: return append([]byte{1}, n.Bytes()...), nil default: return []byte{0}, nil } })
View Source
var Converters = []bindnode.Option{ MultiaddrConverter, HasMultihashConverter, DIDConverter, URLConverter, HTTPHeaderConverter, Version1LinkConverter, PieceLinkConverter, MerkleNodeConverter, ISO8601DateConverter, UnixTimeMilliConverter, BigIntConverter, }
View Source
var DIDConverter = options.NamedBytesConverter("DID", func(bytes []byte) (did.DID, error) { if len(bytes) == 0 { return did.Undef, nil } return did.Decode(bytes) }, func(did did.DID) ([]byte, error) { return did.Bytes(), nil })
View Source
var HTTPHeaderConverter = options.NamedAnyConverter("HTTPHeaders", nodeToHeader, headerToNode)
View Source
var HasMultihashConverter = options.NamedAnyConverter("HasMultihash", func(nd datamodel.Node) (HasMultihash, error) { return linkOrDigest.Read(nd) }, func(h HasMultihash) (datamodel.Node, error) { return h.ToIPLD() })
View Source
var ISO8601DateConverter = options.NamedStringConverter("ISO8601Date", func(s string) (time.Time, error) { return time.Parse(time.RFC3339, s) }, func(t time.Time) (string, error) { return t.Format(time.RFC3339), nil })
View Source
var MerkleNodeConverter = options.NamedBytesConverter("MerkleNode", func(b []byte) (merkletree.Node, error) { if len(b) != len(merkletree.Node{}) { return merkletree.Node{}, ErrWrongLength } return *(*merkletree.Node)(b), nil }, func(n merkletree.Node) ([]byte, error) { return n[:], nil })
View Source
var MultiaddrConverter = options.NamedBytesConverter("Multiaddr", multiaddr.NewMultiaddrBytes, func(m multiaddr.Multiaddr) ([]byte, error) { return m.Bytes(), nil })
View Source
var PieceLinkConverter = options.NamedLinkConverter("PieceLink", func(c cid.Cid) (piece.PieceLink, error) { return piece.FromLink(cidlink.Link{Cid: c}) }, func(p piece.PieceLink) (cid.Cid, error) { return p.Link().(cidlink.Link).Cid, nil })
View Source
var URLConverter = options.NamedStringConverter("URL", func(s string) (url.URL, error) { return schema.URI().Read(s) }, func(url url.URL) (string, error) { return url.String(), nil })
View Source
var UnixTimeMilliConverter = options.NamedIntConverter("UnixTimeMilli", func(millis int64) (time.Time, error) { return time.UnixMilli(millis), nil }, func(t time.Time) (int64, error) { return t.UnixMilli(), nil })
View Source
var Version1LinkConverter = options.NamedLinkConverter("V1Link", func(c cid.Cid) (ipld.Link, error) { return schema.Link(schema.WithVersion(1)).Read(cidlink.Link{Cid: c}) }, func(link ipld.Link) (cid.Cid, error) { cl, ok := link.(cidlink.Link) if !ok { return cid.Undef, errors.New("unsupported link type") } return cl.Cid, nil })
Functions ¶
func DigestType ¶
func DigestType() ipldschema.Type
func HeadersType ¶
func HeadersType() ipldschema.Type
func LoadSchema ¶ added in v0.0.2
LoadSchema parses an IPLD Schema in its DSL form and compiles its types into a standalone TypeSystem.
func LoadSchemaBytes ¶ added in v0.0.2
func LoadSchemaBytes(src []byte) (*schema.TypeSystem, error)
LoadSchemaBytes is a shortcut for LoadSchema for the common case where the schema is available as a buffer or a string, such as via go:embed.
func LoadSchemaFile ¶ added in v0.0.2
func LoadSchemaFile(path string) (*schema.TypeSystem, error)
LoadSchemaBytes is a shortcut for LoadSchema for the common case where the schema is a file on disk.
Types ¶
type Blob ¶ added in v0.0.2
type Blob struct {
// Digest is the multihash of the blob payload bytes, uniquely identifying the blob.
Digest mh.Multihash
// Size is the number of bytes in the blob. The service will provision a write target for this exact size.
// Attempts to write a larger blob will fail.
Size uint64
}
Blob represents a blob to be stored.
type DigestModel ¶
type DigestModel struct {
Digest []byte
}
type HasMultihash ¶
type HasMultihash interface {
ToIPLD() (datamodel.Node, error)
Hash() mh.Multihash
// contains filtered or unexported methods
}
func Digest ¶
func Digest(d DigestModel) (HasMultihash, failure.Failure)
func FromHash ¶
func FromHash(mh mh.Multihash) HasMultihash
type HeadersModel ¶
Click to show internal directories.
Click to hide internal directories.