#pragma once

#include <string>
#include <vector>
#include <boost/optional.hpp>

std::vector<std::string> splitIntoLines(const std::string& s);

std::vector<std::string> wrapSingleLineString(const std::string& s, int lineLength, int hangingIndent = 0);

std::vector<std::string> wrapString(const std::string& s, int lineLength, int hangingIndent = 0);

boost::optional<char> toASCII(char32_t ch);

std::string toASCII(const std::u32string& s);