in fatal/container/circular_queue.h [102:124]
chunk_pair chunks() const {
FATAL_ASSUME_LE(offset_, queue_.size());
auto const gap = queue_.size() - offset_;
chunk_pair chunk;
chunk[0].first = offset_;
chunk[1].first = 0;
if (gap < size_) {
// elements both in [offset_, queue_.size() - 1] and [0, offset_)
chunk[0].second = queue_.size();
chunk[1].second = size_ - gap;
} else {
// all elements in [offset_, queue_.size())
chunk[0].second = offset_ + size_;
chunk[1].second = 0;
}
FATAL_ASSUME_LE(chunk[0].first, chunk[0].second);
FATAL_ASSUME_LE(chunk[1].first, chunk[1].second);
return chunk;
}