refactor: make fullBytes private and create a getter
This commit is contained in:
parent
8c29a284ce
commit
f45e297791
|
@ -47,7 +47,7 @@ func (cid *CID) getPrefixBytes() []byte {
|
|||
|
||||
func (cid *CID) ToBytes() []byte {
|
||||
if cid.Type == types.CIDTypeBridge {
|
||||
return cid.Hash.FullBytes
|
||||
return cid.Hash.fullBytes
|
||||
} else if cid.Type == types.CIDTypeRaw {
|
||||
sizeBytes := utils.EncodeEndian(cid.Size, 8)
|
||||
|
||||
|
@ -58,10 +58,10 @@ func (cid *CID) ToBytes() []byte {
|
|||
sizeBytes = []byte{0}
|
||||
}
|
||||
|
||||
return utils.ConcatBytes(cid.getPrefixBytes(), cid.Hash.FullBytes, sizeBytes)
|
||||
return utils.ConcatBytes(cid.getPrefixBytes(), cid.Hash.fullBytes, sizeBytes)
|
||||
}
|
||||
|
||||
return utils.ConcatBytes(cid.getPrefixBytes(), cid.Hash.FullBytes)
|
||||
return utils.ConcatBytes(cid.getPrefixBytes(), cid.Hash.fullBytes)
|
||||
}
|
||||
|
||||
func Decode(cid string) (*CID, error) {
|
||||
|
|
|
@ -76,7 +76,7 @@ func (c *EncryptedCID) ToBytes() []byte {
|
|||
c.encryptionAlgorithm,
|
||||
byte(c.chunkSizeAsPowerOf2),
|
||||
}
|
||||
data = append(data, c.encryptedBlobHash.FullBytes...)
|
||||
data = append(data, c.encryptedBlobHash.fullBytes...)
|
||||
data = append(data, c.encryptionKey...)
|
||||
data = append(data, utils.EncodeEndian(c.padding, 4)...)
|
||||
data = append(data, c.OriginalCID.ToBytes()...)
|
||||
|
|
|
@ -19,22 +19,26 @@ var (
|
|||
type MultihashCode = int
|
||||
|
||||
type Multihash struct {
|
||||
FullBytes []byte
|
||||
fullBytes []byte
|
||||
}
|
||||
|
||||
func (m *Multihash) FullBytes() []byte {
|
||||
return m.fullBytes
|
||||
}
|
||||
|
||||
var _ json.Marshaler = (*Multihash)(nil)
|
||||
var _ json.Unmarshaler = (*Multihash)(nil)
|
||||
|
||||
func NewMultihash(fullBytes []byte) *Multihash {
|
||||
return &Multihash{FullBytes: fullBytes}
|
||||
return &Multihash{fullBytes: fullBytes}
|
||||
}
|
||||
|
||||
func (m *Multihash) FunctionType() types.HashType {
|
||||
return types.HashType(m.FullBytes[0])
|
||||
return types.HashType(m.fullBytes[0])
|
||||
}
|
||||
|
||||
func (m *Multihash) HashBytes() []byte {
|
||||
return m.FullBytes[1:]
|
||||
return m.fullBytes[1:]
|
||||
}
|
||||
|
||||
func MultihashFromBase64Url(hash string) (*Multihash, error) {
|
||||
|
@ -53,26 +57,26 @@ func MultihashFromBase64Url(hash string) (*Multihash, error) {
|
|||
}
|
||||
|
||||
func (m *Multihash) ToBase64Url() (string, error) {
|
||||
return bases.ToBase64Url(m.FullBytes)
|
||||
return bases.ToBase64Url(m.fullBytes)
|
||||
}
|
||||
|
||||
func (m *Multihash) ToBase32() (string, error) {
|
||||
return bases.ToBase32(m.FullBytes)
|
||||
return bases.ToBase32(m.fullBytes)
|
||||
}
|
||||
|
||||
func (m *Multihash) ToString() (string, error) {
|
||||
if m.FunctionType() == types.HashType(types.CIDTypeBridge) {
|
||||
return string(m.FullBytes), nil // Assumes the bytes are valid UTF-8
|
||||
return string(m.fullBytes), nil // Assumes the bytes are valid UTF-8
|
||||
}
|
||||
return m.ToBase64Url()
|
||||
}
|
||||
|
||||
func (m *Multihash) Equals(other *Multihash) bool {
|
||||
return bytes.Equal(m.FullBytes, other.FullBytes)
|
||||
return bytes.Equal(m.fullBytes, other.fullBytes)
|
||||
}
|
||||
|
||||
func (m *Multihash) HashCode() MultihashCode {
|
||||
return utils.HashCode(m.FullBytes[:4])
|
||||
return utils.HashCode(m.fullBytes[:4])
|
||||
}
|
||||
|
||||
func (b *Multihash) UnmarshalJSON(data []byte) error {
|
||||
|
@ -81,7 +85,7 @@ func (b *Multihash) UnmarshalJSON(data []byte) error {
|
|||
return err
|
||||
}
|
||||
|
||||
b.FullBytes = decodedData
|
||||
b.fullBytes = decodedData
|
||||
return nil
|
||||
}
|
||||
func (b Multihash) MarshalJSON() ([]byte, error) {
|
||||
|
|
|
@ -21,7 +21,7 @@ func TestFromBase64Url(t *testing.T) {
|
|||
{
|
||||
name: "Valid Base64 URL Encoded String",
|
||||
args: args{hash: testdata.MediaBase64CID},
|
||||
want: &Multihash{FullBytes: testdata.MediaCIDBytes},
|
||||
want: &Multihash{fullBytes: testdata.MediaCIDBytes},
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
|
@ -51,7 +51,7 @@ func TestFromBase64Url(t *testing.T) {
|
|||
{
|
||||
name: "Long String",
|
||||
args: args{hash: "uYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh"},
|
||||
want: &Multihash{FullBytes: []byte(strings.Repeat("a", 750))},
|
||||
want: &Multihash{fullBytes: []byte(strings.Repeat("a", 750))},
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ func TestMultihash_FunctionType(t *testing.T) {
|
|||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
m := &Multihash{
|
||||
FullBytes: tt.fields.FullBytes,
|
||||
fullBytes: tt.fields.FullBytes,
|
||||
}
|
||||
if got := m.FunctionType(); got != tt.want {
|
||||
t.Errorf("FunctionType() = %v, want %v", got, tt.want)
|
||||
|
@ -131,7 +131,7 @@ func TestMultihash_ToBase32(t *testing.T) {
|
|||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
m := &Multihash{
|
||||
FullBytes: tt.fields.FullBytes,
|
||||
fullBytes: tt.fields.FullBytes,
|
||||
}
|
||||
got, err := m.ToBase32()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
@ -172,7 +172,7 @@ func TestMultihash_ToBase64Url(t *testing.T) {
|
|||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
m := &Multihash{
|
||||
FullBytes: tt.fields.FullBytes,
|
||||
fullBytes: tt.fields.FullBytes,
|
||||
}
|
||||
got, err := m.ToBase64Url()
|
||||
if (err != nil) != tt.wantErr {
|
||||
|
@ -198,7 +198,7 @@ func TestNewMultihash(t *testing.T) {
|
|||
{
|
||||
name: "Valid Base64 URL Encoded String",
|
||||
args: args{fullBytes: testdata.RawCIDBytes},
|
||||
want: &Multihash{FullBytes: testdata.RawCIDBytes},
|
||||
want: &Multihash{fullBytes: testdata.RawCIDBytes},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
|
|
|
@ -43,7 +43,7 @@ func (fv *FileVersion) EncodeMsgpack(enc *msgpack.Encoder) error {
|
|||
if len(fv.Hashes) > 0 {
|
||||
hashesData := make([][]byte, len(fv.Hashes))
|
||||
for i, hash := range fv.Hashes {
|
||||
hashesData[i] = hash.FullBytes
|
||||
hashesData[i] = hash.FullBytes()
|
||||
}
|
||||
fmap.Put(9, hashesData)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue