package efficientbuffer type dataBlock struct { address []byte // Address of the data block (slice) lowerBound int // Lower bound of the data we're interested in upperBound int // Upper bound of the data we're interested in startIndex int // Index in our EffSlice } type EffSlice struct { data map[int](*dataChunk) } func (s *EffSlice)GetElement(index int) byte { } func (s *EffSlice)AsByteSlice() []byte { } func (s *EffSlice)Append(data *EffSlice){ } func (s *EffSlice)Append(data []byte){ } func (s *EffSlice)Len(){ }