fluent_static/
formatter.rs1#[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}