| // +build ignore,OMIT |
| |
| package main |
| |
| import "io" |
| |
| type SizeReaderAt interface { |
| io.ReaderAt |
| Size() int64 |
| } |
| |
| // START_DOC OMIT |
| // NewChunkAlignedReaderAt returns a ReaderAt wrapper that is backed |
| // by a ReaderAt r of size totalSize where the wrapper guarantees that |
| // all ReadAt calls are aligned to chunkSize boundaries and of size |
| // chunkSize (except for the final chunk, which may be shorter). |
| // |
| // A chunk-aligned reader is good for caching, letting upper layers have |
| // any access pattern, but guarantees that the wrapped ReaderAt sees |
| // only nicely-cacheable access patterns & sizes. |
| func NewChunkAlignedReaderAt(r SizeReaderAt, chunkSize int) SizeReaderAt { |
| // ... |
| return nil // OMIT |
| } |
| |
| // END_DOC OMIT |