Streams returns a reader for the specified trigram data.
(t Trigram)
| 216 | } |
| 217 | |
| 218 | // Streams returns a reader for the specified trigram data. |
| 219 | func (sr *PForReader) Data(t Trigram) (data io.Reader, entries int, _ error) { |
| 220 | meta, next, err := sr.metaEntry(t) |
| 221 | if err != nil { |
| 222 | return nil, 0, err |
| 223 | } |
| 224 | dataBytes := next.OffsetData - meta.OffsetData |
| 225 | //log.Printf("offset: %d, bytes: %d", meta.OffsetData, dataBytes) |
| 226 | // TODO: benchmark whether an *os.File with Seek is measurably worse |
| 227 | return bytes.NewReader(sr.data.Data[meta.OffsetData : meta.OffsetData+dataBytes]), |
| 228 | int(meta.Entries), |
| 229 | nil |
| 230 | } |
| 231 | |
| 232 | func (sr *PForReader) deltas(meta *MetaEntry, buffer *reusableBuffer) ([]uint32, error) { |