Skip to main content

partition_by_script

Function partition_by_script 

Source
pub fn partition_by_script(text: &str) -> Vec<ScriptRun>
Expand description

Partition text into contiguous runs of the same Unicode script.

Common characters (spaces, digits, punctuation) and Inherited characters (combining marks) are resolved to their surrounding script context using a UAX#24-inspired algorithm, preventing unnecessary run breaks at whitespace and punctuation boundaries.

Returns an empty vec for empty input.

§Example

use ftui_text::script_segmentation::{Script, partition_by_script};

let runs = partition_by_script("Hello World");
assert_eq!(runs.len(), 1);
assert_eq!(runs[0].script, Script::Latin);

// Mixed scripts produce multiple runs
let runs = partition_by_script("Helloこんにちは");
assert!(runs.len() >= 2);