Program Listing for File text.hpp

Return to documentation for file (mcfp/text.hpp)

// Copyright Maarten L. Hekkelman 2022-2025
//
// SPDX-License-Identifier: BSD-2-Clause

#pragma once

#ifndef MCFP_EXPORT
# error "Please include mcfp.hpp only"
#endif

#ifndef IN_MODULE_INTERFACE
# include <cstddef>
# include <string_view>
# include <vector>
#endif

namespace mcfp
{


// --------------------------------------------------------------------

MCFP_EXPORT class word_wrapper : public std::vector<std::string_view>
{
  public:
    word_wrapper(std::string_view text, size_t width);

  private:
    std::vector<std::string_view> wrap_line(std::string_view line, size_t width);

    std::string_view::const_iterator next_line_break(std::string_view::const_iterator text,
        std::string_view::const_iterator end);
};


} // namespace mcfp