arg_router  1.4.0
C++ command line argument parsing and routing
arg_router::utility::utf8::no_break_rules Namespace Reference

Functions

template<std::size_t N>
constexpr bool GB3 (const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB6 (const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB7 (const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB8 (const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB9 ([[maybe_unused]] const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB9a ([[maybe_unused]] const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB9b (const std::array< grapheme_cluster_break_class, N > &trailing_window, [[maybe_unused]] grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB11 (const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool GB12_13 (const std::array< grapheme_cluster_break_class, N > &trailing_window, grapheme_cluster_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB6 ([[maybe_unused]] const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB7 ([[maybe_unused]] const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB8a_9 (const std::array< line_break_class, N > &trailing_window, [[maybe_unused]] line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB11 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB12 (const std::array< line_break_class, N > &trailing_window, [[maybe_unused]] line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB12a (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB13 ([[maybe_unused]] const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB14 (const std::array< line_break_class, N > &trailing_window, [[maybe_unused]] line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB15 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB16 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB17 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB19 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB21 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB21a (const std::array< line_break_class, N > &trailing_window, [[maybe_unused]] line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB21b (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB22 ([[maybe_unused]] const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB23 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB23a (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB24 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB25 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB26 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB27 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB28 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB29 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB30 (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB30a (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 
template<std::size_t N>
constexpr bool LB30b (const std::array< line_break_class, N > &trailing_window, line_break_class next_class) noexcept
 

Variables

template<std::size_t N>
constexpr auto grapheme_cluster
 
template<std::size_t N>
constexpr auto line_break
 

Detailed Description

Namespace for grapheme cluster and line break rules.

These rules define when not to break.

Function Documentation

◆ GB11()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB11 ( const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB11, do not break within emoji modifier sequences or emoji zwj sequences.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 183 of file grapheme_cluster_break.hpp.

◆ GB12_13()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB12_13 ( const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB12 and GB13, do not break within emoji flag sequences.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 202 of file grapheme_cluster_break.hpp.

◆ GB3()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB3 ( const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB3, do not split between CR and LF.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 52 of file grapheme_cluster_break.hpp.

◆ GB6()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB6 ( const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB6, do not break Hangul syllable sequences.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 70 of file grapheme_cluster_break.hpp.

◆ GB7()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB7 ( const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB7, do not break Hangul syllable sequences.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 91 of file grapheme_cluster_break.hpp.

◆ GB8()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB8 ( const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB8, do not break Hangul syllable sequences.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 111 of file grapheme_cluster_break.hpp.

◆ GB9()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB9 ( [[maybe_unused] ] const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB9, do not break before extending characters or ZWJ.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 130 of file grapheme_cluster_break.hpp.

◆ GB9a()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB9a ( [[maybe_unused] ] const std::array< grapheme_cluster_break_class, N > &  trailing_window,
grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB9a, do not break before SpacingMarks, or after Prepend characters.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 148 of file grapheme_cluster_break.hpp.

◆ GB9b()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::GB9b ( const std::array< grapheme_cluster_break_class, N > &  trailing_window,
[[maybe_unused] ] grapheme_cluster_break_class  next_class 
)
constexprnoexcept

Rule GB9b, do not break before SpacingMarks, or after Prepend characters.

From https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 165 of file grapheme_cluster_break.hpp.

◆ LB11()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB11 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB11, do not break before or after Word joiner and related characters.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 125 of file line_break.hpp.

◆ LB12()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB12 ( const std::array< line_break_class, N > &  trailing_window,
[[maybe_unused] ] line_break_class  next_class 
)
constexprnoexcept

Rule LB12, do not break after NBSP and related characters.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 143 of file line_break.hpp.

◆ LB12a()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB12a ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB12a, do not break before NBSP and related characters, except after spaces and hyphens.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 160 of file line_break.hpp.

◆ LB13()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB13 ( [[maybe_unused] ] const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB13, do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 180 of file line_break.hpp.

◆ LB14()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB14 ( const std::array< line_break_class, N > &  trailing_window,
[[maybe_unused] ] line_break_class  next_class 
)
constexprnoexcept

Rule LB14, do not break after ‘[’, even after spaces.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 201 of file line_break.hpp.

◆ LB15()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB15 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB15, do not break within ‘”[’, even with intervening spaces.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 228 of file line_break.hpp.

◆ LB16()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB16 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB16, do not break between closing punctuation and a nonstarter (NS), even with intervening spaces.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 257 of file line_break.hpp.

◆ LB17()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB17 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB17, do not break within ‘——’, even with intervening spaces.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 285 of file line_break.hpp.

◆ LB19()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB19 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB19, do not break before or after quotation marks, such as ‘”’.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 313 of file line_break.hpp.

◆ LB21()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB21 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB21, do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 332 of file line_break.hpp.

◆ LB21a()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB21a ( const std::array< line_break_class, N > &  trailing_window,
[[maybe_unused] ] line_break_class  next_class 
)
constexprnoexcept

Rule LB21a, do not break after Hebrew + Hyphen.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 352 of file line_break.hpp.

◆ LB21b()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB21b ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB21b, do not break between Solidus and Hebrew letters.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 371 of file line_break.hpp.

◆ LB22()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB22 ( [[maybe_unused] ] const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB22, do not break before ellipses.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 389 of file line_break.hpp.

◆ LB23()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB23 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB23, do not break between digits and letters.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 406 of file line_break.hpp.

◆ LB23a()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB23a ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB23a, do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 429 of file line_break.hpp.

◆ LB24()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB24 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB24, do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 454 of file line_break.hpp.

◆ LB25()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB25 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB25, do not break between these pairs of classes relevant to numbers.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 478 of file line_break.hpp.

◆ LB26()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB26 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB26, do not break a Korean syllable.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 519 of file line_break.hpp.

◆ LB27()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB27 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB27, treat a Korean Syllable Block the same as ID.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 547 of file line_break.hpp.

◆ LB28()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB28 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB28, do not break between alphabetics (“at”).

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 575 of file line_break.hpp.

◆ LB29()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB29 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB29, do not break between numeric punctuation and alphabetics (“e.g.”).

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 595 of file line_break.hpp.

◆ LB30()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB30 ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB30, do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.

From https://www.unicode.org/reports/tr14/#Algorithm.

Note
This is not a true LB30 because it doesn't take into account far east asian parentheses styles, so it can cause a break between a latin alphanumeric character and a far east asian open parentheses for example
Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 619 of file line_break.hpp.

◆ LB30a()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB30a ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB30a, break between two regional indicator symbols if and only if there are an even number of regional indicators preceding the position of the break.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 644 of file line_break.hpp.

◆ LB30b()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB30b ( const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB30b, do not break between an emoji base (or potential emoji) and an emoji modifier.

From https://www.unicode.org/reports/tr14/#Algorithm.

Note
This is not a true LB30b as it doesn't take into account extended pictographic
Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 672 of file line_break.hpp.

◆ LB6()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB6 ( [[maybe_unused] ] const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB6, do not break before hard line breaks.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 69 of file line_break.hpp.

◆ LB7()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB7 ( [[maybe_unused] ] const std::array< line_break_class, N > &  trailing_window,
line_break_class  next_class 
)
constexprnoexcept

Rule LB7, do not break before spaces or zero width space.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 89 of file line_break.hpp.

◆ LB8a_9()

template<std::size_t N>
constexpr bool arg_router::utility::utf8::no_break_rules::LB8a_9 ( const std::array< line_break_class, N > &  trailing_window,
[[maybe_unused] ] line_break_class  next_class 
)
constexprnoexcept

Rule LB8a and LB9, do not break after a combining character sequence or zero width joiner.

From https://www.unicode.org/reports/tr14/#Algorithm.

Template Parameters
NSize of trailing window
Parameters
trailing_windowTrailing window of properties, the zeroth index is the 'current' class begin iterated over
next_classThe class after the current one
Returns
True if you should not break between these break classes

Definition at line 107 of file line_break.hpp.

Variable Documentation

◆ grapheme_cluster

template<std::size_t N>
constexpr auto arg_router::utility::utf8::no_break_rules::grapheme_cluster
constexpr
Initial value:
= std::array{&GB3<N>,
&GB6<N>,
&GB7<N>,
&GB8<N>,
&GB9<N>,
&GB9a<N>,
&GB9b<N>,
&GB11<N>,
&GB12_13<N>}

Array of rule function pointers, just to ease iteration.

Template Parameters
NSize of trailing window

Definition at line 224 of file grapheme_cluster_break.hpp.

◆ line_break

template<std::size_t N>
constexpr auto arg_router::utility::utf8::no_break_rules::line_break
constexpr
Initial value:
= std::array{
&LB6<N>, &LB7<N>, &LB8a_9<N>, &LB11<N>, &LB12<N>, &LB12a<N>, &LB13<N>, &LB14<N>, &LB15<N>,
&LB16<N>, &LB17<N>, &LB19<N>, &LB21<N>, &LB21a<N>, &LB21b<N>, &LB22<N>, &LB23<N>, &LB23a<N>,
&LB24<N>, &LB25<N>, &LB26<N>, &LB27<N>, &LB28<N>, &LB29<N>, &LB30<N>, &LB30a<N>, &LB30b<N>,
}

Array of rule function pointers, just to ease iteration.

Template Parameters
NSize of trailing window

Definition at line 685 of file line_break.hpp.