Function encoding_rs::mem::is_utf16_bidi

source ·
pub fn is_utf16_bidi(buffer: &[u16]) -> bool
Expand description

Checks whether a UTF-16 buffer contains code points that trigger right-to-left processing.

The check is done on a Unicode block basis without regard to assigned vs. unassigned code points in the block. Hebrew presentation forms in the Alphabetic Presentation Forms block are treated as if they formed a block on their own (i.e. it treated as right-to-left). Additionally, the four RIGHT-TO-LEFT FOO controls in General Punctuation are checked for. Control characters that are technically bidi controls but do not cause right-to-left behavior without the presence of right-to-left characters or right-to-left controls are not checked for. As a special case, U+FEFF is excluded from Arabic Presentation Forms-B.

Returns true if the input contains an RTL character or an unpaired high surrogate that could be the high half of an RTL character. Returns false if the input contains neither RTL characters nor unpaired high surrogates that could be higher halves of RTL characters.