in fatal/codec/varint.h [318:339]
static TOutputIterator encode(
type value,
TOutputIterator out
) noexcept {
using traits = detail::varint_impl::data_traits<
typename std::iterator_traits<TOutputIterator>::value_type
>;
using unsigned_unit = typename traits::unsigned_unit;
for (internal x = value_traits::pre(value); ; std::advance(out, 1)) {
unsigned_unit data = x & traits::filter_mask::value;
x >>= traits::payload_size::value;
if (x) {
*out = traits::to(data | traits::continuation_bit::value);
} else {
*out = traits::to(data);
return std::next(out);
}
}
}