3 #include <initializer_list>
14 template <
typename String>
18 using string_type = String;
19 using character =
typename string_type::value_type;
21 enum class match_result : std::uint32_t
38 using container = std::vector<container_entry>;
46 : m_c(il.begin(), il.end())
54 string_type
const&
data()
const {
return m_s; }
61 auto size()
const {
return m_s.size(); }
83 std::uint32_t pos = m_s.size();
88 auto it1 = m_c.begin();
92 if (it1->m_failed || it1->m_s.size() == pos || it1->m_s.operator[](pos) != ch)
97 else if (m_s.size() == it1->m_s.size())
return match_result::succeed;
102 return (n == m_c.size()) ? match_result::failed : match_result::partial;