fluent_static/
formatter.rs

1#[cfg(not(feature = "icu"))]
2use crate::value::Number;
3#[cfg(not(feature = "icu"))]
4use crate::value::Value;
5
6#[cfg(feature = "icu")]
7pub use fluent_static_formatter::format;
8
9pub type FormatterFn =
10    fn(&str, &fluent_static_value::Value, &mut dyn std::fmt::Write) -> std::fmt::Result;
11
12#[cfg(not(feature = "icu"))]
13pub fn format(
14    _locale: &str,
15    value: &fluent_static_value::Value,
16    out: &mut impl std::fmt::Write,
17) -> std::fmt::Result {
18    match value {
19        Value::String(s) => out.write_str(s),
20        Value::Number { value, .. } => match value {
21            Number::I64(n) => write!(out, "{}", n),
22            Number::U64(n) => write!(out, "{}", n),
23            Number::I128(n) => write!(out, "{}", n),
24            Number::U128(n) => write!(out, "{}", n),
25            Number::F64(n) => write!(out, "{}", n),
26        },
27        Value::Empty => Ok(()),
28        Value::Error => write!(out, "#error#"),
29    }
30}