@@ -25,14 +25,17 @@ import (
25
25
26
26
// Errors that decode can return
27
27
const (
28
- ErrInvalidChunkID = errs .Error ("invalid chunk ID" )
29
28
ErrInvalidChecksum = errs .Error ("invalid chunk checksum" )
30
29
ErrWrongMetadata = errs .Error ("wrong chunk metadata" )
31
30
ErrMetadataLength = errs .Error ("chunk metadata wrong length" )
32
31
)
33
32
34
33
var castagnoliTable = crc32 .MakeTable (crc32 .Castagnoli )
35
34
35
+ func errInvalidChunkID (s string ) error {
36
+ return errors .Errorf ("invalid chunk ID %q" , s )
37
+ }
38
+
36
39
// Chunk contains encoded timeseries data
37
40
type Chunk struct {
38
41
// These two fields will be missing from older chunks (as will the hash).
@@ -107,7 +110,7 @@ func ParseExternalKey(userID, externalKey string) (Chunk, error) {
107
110
func parseLegacyChunkID (userID , key string ) (Chunk , error ) {
108
111
parts := strings .Split (key , ":" )
109
112
if len (parts ) != 3 {
110
- return Chunk {}, errors . WithStack ( ErrInvalidChunkID )
113
+ return Chunk {}, errInvalidChunkID ( key )
111
114
}
112
115
fingerprint , err := strconv .ParseUint (parts [0 ], 10 , 64 )
113
116
if err != nil {
@@ -132,12 +135,12 @@ func parseLegacyChunkID(userID, key string) (Chunk, error) {
132
135
func parseNewExternalKey (key string ) (Chunk , error ) {
133
136
parts := strings .Split (key , "/" )
134
137
if len (parts ) != 2 {
135
- return Chunk {}, errors . WithStack ( ErrInvalidChunkID )
138
+ return Chunk {}, errInvalidChunkID ( key )
136
139
}
137
140
userID := parts [0 ]
138
141
hexParts := strings .Split (parts [1 ], ":" )
139
142
if len (hexParts ) != 4 {
140
- return Chunk {}, errors . WithStack ( ErrInvalidChunkID )
143
+ return Chunk {}, errInvalidChunkID ( key )
141
144
}
142
145
fingerprint , err := strconv .ParseUint (hexParts [0 ], 16 , 64 )
143
146
if err != nil {
0 commit comments