| Crates.io | unicode-linebreak |
| lib.rs | unicode-linebreak |
| version | 0.1.5 |
| created_at | 2018-12-10 20:45:01.729575+00 |
| updated_at | 2023-07-25 11:49:38.560848+00 |
| description | Implementation of the Unicode Line Breaking Algorithm |
| homepage | https://github.com/axelf4/unicode-linebreak |
| repository | https://github.com/axelf4/unicode-linebreak |
| max_upload_size | |
| id | 101192 |
| size | 89,796 |
Implementation of the Line Breaking Algorithm described in Unicode Standard Annex #14.
Given an input text, locates "line break opportunities", or positions appropriate for wrapping lines when displaying text.
use unicode_linebreak::{linebreaks, BreakOpportunity::{Mandatory, Allowed}};
let text = "a b \nc";
assert!(linebreaks(text).eq([
(2, Allowed), // May break after first space
(5, Mandatory), // Must break after line feed
(6, Mandatory) // Must break at end of text, so that there always is at least one LB
]));
After cloning the repository or modifying LineBreak.txt the tables
have to be (re-)generated:
# Generate src/tables.rs
(cd gen-tables && cargo run)
# Run tests to make sure it was successful
cargo test