Added back in some of the parser methods. (These were previously named "Cast" and I think that's silly and wrong so I fixed it.) Functions are named overly-literally with their type (e.g. ParseCidString and ParseCidStruct rather than ParseCid or even just Parse) because for this research package I don't want to bother with many sub-packages. (Maybe I'll regret this, but at the moment it seems simpler to hold back on sub-packages.) Functions that produce Cids are literal with their return types, as well. Part of the purpose of this research package is going to be to concretely benchmark exactly how much performance overhead there is to using interfaces (which will likely cause a lot of boxing and unboxing in practice) -- since we want to explore where this boxing happens and how much it costs, it's important that none of our basic implementation functions do the boxing! The entire set of codec enums came along in this commit. Ah well; they would have eventually anyway, I guess. But it's interesting to note the only thing that dragged them along so far is the reference to 'DagProtobuf' when constructing v0 CIDs; otherwise, this enum is quite unused here.
25 lines
727 B
Go
25 lines
727 B
Go
package cid
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
var (
|
|
// ErrVarintBuffSmall means that a buffer passed to the cid parser was not
|
|
// long enough, or did not contain an invalid cid
|
|
ErrVarintBuffSmall = errors.New("reading varint: buffer too small")
|
|
|
|
// ErrVarintTooBig means that the varint in the given cid was above the
|
|
// limit of 2^64
|
|
ErrVarintTooBig = errors.New("reading varint: varint bigger than 64bits" +
|
|
" and not supported")
|
|
|
|
// ErrCidTooShort means that the cid passed to decode was not long
|
|
// enough to be a valid Cid
|
|
ErrCidTooShort = errors.New("cid too short")
|
|
|
|
// ErrInvalidEncoding means that selected encoding is not supported
|
|
// by this Cid version
|
|
ErrInvalidEncoding = errors.New("invalid base encoding")
|
|
)
|