Documentation ¶
Index ¶
- Constants
- Variables
- func ExtractEncoding(v string) (mbase.Encoding, error)
- type ID
- func (i ID) Bytes() []byte
- func (i ID) Defined() bool
- func (i ID) Encode(base mbase.Encoder) string
- func (i ID) Equals(o ID) bool
- func (i ID) KeyString() string
- func (i ID) Loggable() map[string]interface{}
- func (i ID) MarshalBinary() ([]byte, error)
- func (i ID) MarshalText() ([]byte, error)
- func (i ID) String() string
- func (i ID) StringOfBase(base mbase.Encoding) (string, error)
- func (i *ID) UnmarshalBinary(data []byte) error
- func (i *ID) UnmarshalText(text []byte) error
- func (i ID) Variant() Variant
- func (i ID) Version() uint64
- type IDSlice
- type Info
- type LogInfo
- type Variant
Constants ¶
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 )
const (
V1 = 0x01
)
Versions.
Variables ¶
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") )
var Undef = ID{}
Undef can be used to represent a nil or undefined Cid, using Cid{} directly is also acceptable.
Functions ¶
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 ¶
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 ¶
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 (ID) Bytes ¶
Bytes returns the byte representation of an ID. The output of bytes can be parsed back into an ID with Cast().
func (ID) Defined ¶
Defined returns true if an ID is defined. Calling any other methods on an undefined ID will result in undefined behavior.
func (ID) Encode ¶
Encode return the string representation of an ID in a given base when applicable.
func (ID) Loggable ¶
Loggable returns a Loggable (as defined by https://godoc.org/github.com/ipfs/go-log).
func (ID) MarshalBinary ¶
MarshalBinary is equivalent to Bytes(). It implements the encoding.BinaryMarshaler interface.
func (ID) MarshalText ¶
MarshalText is equivalent to String(). It implements the encoding.TextMarshaler interface.
func (ID) String ¶
String returns the default string representation of an ID. Currently, Base32 is used as the encoding for the multibase string.
func (ID) StringOfBase ¶
String returns the string representation of an ID encoded is selected base.
func (*ID) UnmarshalBinary ¶
UnmarshalBinary is equivalent to Cast(). It implements the encoding.BinaryUnmarshaler interface.
func (*ID) UnmarshalText ¶
UnmarshalText is equivalent to Decode(). It implements the encoding.TextUnmarshaler interface.