in fatal/container/circular_queue.h [278:301]
void shift_to_front(Shifter &&shifter = Shifter()) {
assert(!queue_.empty());
FATAL_ASSUME_POSITIVE(size_);
auto const original = real_index(size_ - 1);
FATAL_ASSUME_LT(original, queue_.size());
if (offset_) {
--offset_;
} else {
offset_ = queue_.size() - 1;
}
FATAL_ASSUME_LT(offset_, queue_.size());
FATAL_ASSUME_LE(size_, queue_.size());
if (size_ < queue_.size()) {
auto &from = queue_[original].value;
shifter(
std::addressof(queue_[offset_].value),
std::move(from)
);
from.~value_type();
}
}