From 7d7cb88d786f66d9694b82f2e3a358012d7770be Mon Sep 17 00:00:00 2001 From: Jeromy Date: Fri, 1 May 2020 15:01:28 -0700 Subject: [PATCH] add a couple useful methods --- cid.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cid.go b/cid.go index 1b5801b..d078b9a 100644 --- a/cid.go +++ b/cid.go @@ -25,6 +25,7 @@ import ( "encoding/json" "errors" "fmt" + "io" "strings" mbase "github.com/multiformats/go-multibase" @@ -408,6 +409,17 @@ func (c Cid) Bytes() []byte { return []byte(c.str) } +// ByteLen returns len(c.Bytes()) without an allocation +func (c Cid) ByteLen() int { + return len(c.str) +} + +// WriteTo writes the cids bytes to the given writer +func (c Cid) WriteTo(w io.Writer) error { + _, err := io.WriteString(w, c.str) + return err +} + // MarshalBinary is equivalent to Bytes(). It implements the // encoding.BinaryMarshaler interface. func (c Cid) MarshalBinary() ([]byte, error) {