Expand description
Compact, performance-oriented ICU MessageFormat parsing primitives.
§Examples
use ferrocat_icu::{extract_variables, parse_icu};
let message = parse_icu("Hello {name}, you have {count, plural, one {# item} other {# items}}.")?;
assert_eq!(extract_variables(&message), vec!["name", "count"]);Structs§
- IcuMessage
- Parsed ICU message.
- IcuOption
- A selector branch inside a plural or select expression.
- IcuParse
Error - Error returned when parsing ICU messages fails.
- IcuParser
Options - Options controlling ICU parsing behavior.
- IcuPosition
- Byte offset plus line/column location inside the original input.
Enums§
- IcuError
Kind - High-level classification of ICU parse failures.
- IcuNode
- AST node emitted by the ICU parser.
- IcuPlural
Kind - Distinguishes cardinal and ordinal plural forms.
Functions§
- extract_
variables - Extracts variable names in first-seen order.
- has_
plural - Returns
truewhen the message contains a cardinal plural expression. - has_
select - Returns
truewhen the message contains a select expression. - has_
selectordinal - Returns
truewhen the message contains an ordinal plural expression. - has_tag
- Returns
truewhen the message contains rich-text style tags. - parse_
icu - Parses ICU
MessageFormatinput with the default parser options. - parse_
icu_ with_ options - Parses ICU
MessageFormatinput with explicit parser options. - validate_
icu - Validates ICU
MessageFormatinput without returning the parsed AST.