Added comments to the Chunk interface
@@ -41,14 +41,28 @@ 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()
}
