Struct textwrap::word_separators::UnicodeBreakProperties [−][src]
pub struct UnicodeBreakProperties;
Expand description
Find words using the Unicode line breaking algorithm.
Trait Implementations
Returns the “default value” for a type. Read more
Split line
into words using Unicode break properties.
This word separator uses the Unicode line breaking algorithm
described in Unicode Standard Annex
#14 to find legal places
to break lines. There is a small difference in that the U+002D
(Hyphen-Minus) and U+00AD (Soft Hyphen) don’t create a line break:
to allow a line break at a hyphen, use the
HyphenSplitter
. Soft
hyphens are not currently supported.
Examples
Unlike AsciiSpace
, the Unicode line breaking algorithm will
find line break opportunities between some characters with no
intervening whitespace:
#[cfg(feature = "unicode-linebreak")] { use textwrap::word_separators::{WordSeparator, UnicodeBreakProperties}; use textwrap::core::Word; assert_eq!(UnicodeBreakProperties.find_words("Emojis: 😂😍").collect::<Vec<_>>(), vec![Word::from("Emojis: "), Word::from("😂"), Word::from("😍")]); assert_eq!(UnicodeBreakProperties.find_words("CJK: 你好").collect::<Vec<_>>(), vec![Word::from("CJK: "), Word::from("你"), Word::from("好")]); }
A U+2060 (Word Joiner) character can be inserted if you want to manually override the defaults and keep the characters together:
#[cfg(feature = "unicode-linebreak")] { use textwrap::word_separators::{UnicodeBreakProperties, WordSeparator}; use textwrap::core::Word; assert_eq!(UnicodeBreakProperties.find_words("Emojis: 😂\u{2060}😍").collect::<Vec<_>>(), vec![Word::from("Emojis: "), Word::from("😂\u{2060}😍")]); }
The Unicode line breaking algorithm will also automatically suppress break breaks around certain punctuation characters::
#[cfg(feature = "unicode-linebreak")] { use textwrap::word_separators::{UnicodeBreakProperties, WordSeparator}; use textwrap::core::Word; assert_eq!(UnicodeBreakProperties.find_words("[ foo ] bar !").collect::<Vec<_>>(), vec![Word::from("[ foo ] "), Word::from("bar !")]); }
Auto Trait Implementations
impl RefUnwindSafe for UnicodeBreakProperties
impl Send for UnicodeBreakProperties
impl Sync for UnicodeBreakProperties
impl Unpin for UnicodeBreakProperties
impl UnwindSafe for UnicodeBreakProperties
Blanket Implementations
Mutably borrows from an owned value. Read more