hmm can't you read the BytesRef once and then use array copy until it's exhausted then move to the next `page`? You should maybe use a BytesRef internally to hold the `current` page I guess since then you can just copy from that one?