|
|
|
@ -41,14 +41,29 @@ const (
|
|
|
|
|
|
|
|
|
|
// Chunk holds a sequence of sample pairs that can be iterated over and appended to.
|
|
|
|
|
type Chunk interface {
|
|
|
|
|
// Bytes returns the underlying byte slice of the chunk.
|
|
|
|
|
Bytes() []byte
|
|
|
|
|
|
|
|
|
|
// Encoding returns the encoding type of the chunk.
|
|
|
|
|
Encoding() Encoding
|
|
|
|
|
|
|
|
|
|
// Appender returns an appender to append samples to the chunk.
|
|
|
|
|
Appender() (Appender, error)
|
|
|
|
|
|
|
|
|
|
// The iterator passed as argument is for re-use.
|
|
|
|
|
// Depending on implementation, the iterator can
|
|
|
|
|
// be re-used or a new iterator can be allocated.
|
|
|
|
|
Iterator(Iterator) Iterator
|
|
|
|
|
|
|
|
|
|
// NumSamples returns the number of samples in the chunk.
|
|
|
|
|
NumSamples() int
|
|
|
|
|
|
|
|
|
|
// Compact is called whenever a chunk is expected to be complete (no more
|
|
|
|
|
// samples appended) and the underlying implementation can eventually
|
|
|
|
|
// optimize the chunk.
|
|
|
|
|
// There's no strong guarantee that no samples will be appended once
|
|
|
|
|
// Compact() is called. Implementing this function is optional.
|
|
|
|
|
Compact()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Appender adds sample pairs to a chunk.
|
|
|
|
|