thread

package
v0.1.10 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2020 License: MIT Imports: 10 Imported by: 73

Documentation

Index

Constants

View Source
const (
	// Name is the protocol slug.
	Name = "thread"
	// Code is the protocol code.
	Code = 406
	// Version is the current protocol version.
	Version = "0.0.1"
	// Protocol is the threads protocol tag.
	Protocol protocol.ID = "/" + Name + "/" + Version
)
View Source
const (
	V1 = 0x01
)

Versions.

Variables

View Source
var (
	// ErrVarintBuffSmall means that a buffer passed to the ID parser was not
	// long enough, or did not contain an invalid ID.
	ErrVarintBuffSmall = fmt.Errorf("reading varint: buffer too small")

	// ErrVarintTooBig means that the varint in the given ID was above the
	// limit of 2^64.
	ErrVarintTooBig = fmt.Errorf("reading varint: varint bigger than 64bits" +
		" and not supported")

	// ErrIDTooShort means that the ID passed to decode was not long
	// enough to be a valid ID.
	ErrIDTooShort = fmt.Errorf("id too short")
)
View Source
var Undef = ID{}

Undef can be used to represent a nil or undefined Cid, using Cid{} directly is also acceptable.

Functions

func ExtractEncoding

func ExtractEncoding(v string) (mbase.Encoding, error)

Extract the encoding from an ID. If Decode on the same string did not return an error neither will this function.

Types

type ID

type ID struct {
	// contains filtered or unexported fields
}

ID represents a self-describing thread identifier. It is formed by a Version, a Variant, and a random number of a given length.

func Cast

func Cast(data []byte) (ID, error)

Cast takes an ID data slice, parses it and returns an ID. For IDV1, the data buffer is in the form:

<version><variant><random-number>

Please use decode when parsing a regular ID string, as Cast does not expect multibase-encoded data. Cast accepts the output of ID.Bytes().

func Decode

func Decode(v string) (ID, error)

Decode parses an ID-encoded string and returns an ID object. For IDV1, an ID-encoded string is primarily a multibase string:

<multibase-type-code><base-encoded-string>

The base-encoded string represents a:

<version><variant><random-number>

func NewIDV1

func NewIDV1(variant Variant, size uint8) ID

NewIDV1 returns a new random ID using the given variant.

func (ID) Bytes

func (i ID) Bytes() []byte

Bytes returns the byte representation of an ID. The output of bytes can be parsed back into an ID with Cast().

func (ID) Defined

func (i ID) Defined() bool

Defined returns true if an ID is defined. Calling any other methods on an undefined ID will result in undefined behavior.

func (ID) Encode

func (i ID) Encode(base mbase.Encoder) string

Encode return the string representation of an ID in a given base when applicable.

func (ID) Equals

func (i ID) Equals(o ID) bool

Equals checks that two IDs are the same.

func (ID) KeyString

func (i ID) KeyString() string

KeyString returns the binary representation of the ID as a string.

func (ID) Loggable

func (i ID) Loggable() map[string]interface{}

Loggable returns a Loggable (as defined by https://godoc.org/github.com/ipfs/go-log).

func (ID) MarshalBinary

func (i ID) MarshalBinary() ([]byte, error)

MarshalBinary is equivalent to Bytes(). It implements the encoding.BinaryMarshaler interface.

func (ID) MarshalText

func (i ID) MarshalText() ([]byte, error)

MarshalText is equivalent to String(). It implements the encoding.TextMarshaler interface.

func (ID) String

func (i ID) String() string

String returns the default string representation of an ID. Currently, Base32 is used as the encoding for the multibase string.

func (ID) StringOfBase

func (i ID) StringOfBase(base mbase.Encoding) (string, error)

String returns the string representation of an ID encoded is selected base.

func (*ID) UnmarshalBinary

func (i *ID) UnmarshalBinary(data []byte) error

UnmarshalBinary is equivalent to Cast(). It implements the encoding.BinaryUnmarshaler interface.

func (*ID) UnmarshalText

func (i *ID) UnmarshalText(text []byte) error

UnmarshalText is equivalent to Decode(). It implements the encoding.TextUnmarshaler interface.

func (ID) Variant

func (i ID) Variant() Variant

Variant returns the variant of an ID.

func (ID) Version

func (i ID) Version() uint64

Version returns the ID version.

type IDSlice

type IDSlice []ID

IDSlice for sorting threads.

func (IDSlice) Len

func (s IDSlice) Len() int

func (IDSlice) Less

func (s IDSlice) Less(i, j int) bool

func (IDSlice) Swap

func (s IDSlice) Swap(i, j int)

type Info

type Info struct {
	ID        ID
	Logs      []LogInfo
	FollowKey *sym.Key
	ReadKey   *sym.Key
}

Info holds thread logs and keys.

func (Info) GetOwnLog added in v0.1.6

func (i Info) GetOwnLog() *LogInfo

GetOwnLog returns the first log found with a private key.

type LogInfo

type LogInfo struct {
	ID      peer.ID
	PubKey  crypto.PubKey
	PrivKey crypto.PrivKey
	Addrs   []ma.Multiaddr
	Heads   []cid.Cid
}

LogInfo holds log keys, addresses, and heads.

type Variant added in v0.1.7

type Variant uint64

Variant is a type for thread variants.

const (
	Raw              Variant = 0x55
	AccessControlled Variant = 0x70 // Supports access control lists
)

Variants.

func (Variant) String added in v0.1.7

func (v Variant) String() string

Jump to

Keyboard shortcuts

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