TInputIterator operator()

in fatal/codec/varint.h [345:365]


    TInputIterator operator ()(
      TInputIterator begin,
      TInputIterator const end
    ) noexcept {
      using traits = detail::varint_impl::data_traits<
        typename std::iterator_traits<TInputIterator>::value_type
      >;

      for (; continuation_ && begin != end; std::advance(begin, 1)) {
        assert(continuation_);

        value_ |= static_cast<internal>(
          traits::from(*begin) & traits::filter_mask::value
        ) << shift_;
        shift_ += traits::payload_size::value;

        continuation_ = traits::from(*begin) & traits::continuation_bit::value;
      }

      return begin;
    }