static TOutputIterator encode()

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);
      }
    }
  }