base_n::encode_algorithm::max_remaining_size

mgs::ssize_t max_remaining_size() const;

Computes the maximum number of remaining bytes.


Constraints

This function is only defined if IS models codecs::sized_input_source.

Parameters

None.

Return value

The maximum number of remaining bytes.

Example

#include <iostream>
#include <string>

#include <mgs/base_n/encode_algorithm.hpp>
#include <mgs/codecs/iterator_sentinel_source.hpp>

using namespace mgs;
using namespace mgs::base_n;

namespace {

struct base2_encoding_traits {
  // using C++17 inline variables for simplicity
  inline static char const alphabet[] = {'0', '1'};
  inline static auto const padding_policy = base_n::padding_policy::none;

  static int index_of(char c) {
    if (c == '0') return 0;
    if (c == '1') return 1;
    return -1;
  }
};
}  // namespace

int main() {
  using input_source_t =
      codecs::iterator_sentinel_source<std::string::iterator>;
  using base2_encode = encode_algorithm<base2_encoding_traits, input_source_t>;

  std::string hello("Hello, World!");
  auto input_source = codecs::make_iterator_sentinel_source(hello);

  base2_encode algo(input_source);
  std::cout << "Maximum remaining encoded size: " << algo.max_remaining_size()
            << std::endl;
}