types

package
v0.7.3 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2026 License: Apache-2.0, MIT Imports: 31 Imported by: 25

Documentation

Index

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 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

func LoadSchema(name string, r io.Reader) (*schema.TypeSystem, error)

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 Await added in v0.0.2

type Await struct {
	Selector string
	Link     ipld.Link
}

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 FromHash

func FromHash(mh mh.Multihash) HasMultihash

type HeadersModel

type HeadersModel struct {
	Keys   []string
	Values map[string]string
}

type Promise added in v0.0.2

type Promise struct {
	UcanAwait Await
}

Jump to

Keyboard shortcuts

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