avoid calling the method WriteTo if we don't satisfy its contract

This commit is contained in:
Jeromy
2020-05-01 16:04:36 -07:00
parent c1c89c20c1
commit 75caa6bdbd

13
cid.go
View File

@@ -418,12 +418,19 @@ func (c Cid) ByteLen() int {
return len(c.str)
}
// WriteTo writes the CID bytes to the given writer.
// WriteBytes writes the CID bytes to the given writer.
// This method works without incurring any allocation.
//
// (See also the ByteLen method for other important operations that work without allocation.)
func (c Cid) WriteTo(w io.Writer) (int, error) {
return io.WriteString(w, c.str)
func (c Cid) WriteBytes(w io.Writer) (int, error) {
n, err := io.WriteString(w, c.str)
if err != nil {
return n, err
}
if n != len(c.str) {
return n, fmt.Errorf("failed to write entire cid string")
}
return n, nil
}
// MarshalBinary is equivalent to Bytes(). It implements the