use alloc::string::String;
use crate::datetime::DateTimeRequest;
use crate::number::{NumberOut, NumberRequest};
use crate::plural::Category;
use crate::sink::Sink;
pub trait Host: Sync {
fn nfc<'a>(&self, s: &'a str, buf: &'a mut String) -> &'a str;
fn f64_to_text<'b>(&self, x: f64, buf: &'b mut [u8; 32]) -> Option<&'b str>;
fn zone_offset(&self, zone: &str, epoch_ms: i64) -> Option<i32> {
let _ = (zone, epoch_ms);
None
}
fn format_date_time(
&self,
locale: &str,
request: &DateTimeRequest<'_>,
out: &mut dyn Sink,
) -> bool {
let _ = (locale, request, out);
false
}
fn numbers(&self) -> Option<&dyn NumberFormatter> {
None
}
}
pub trait NumberFormatter: Sync {
fn format(&self, locale: &str, request: &NumberRequest<'_>, out: NumberOut<'_>) -> bool;
fn plural(&self, locale: &str, request: &NumberRequest<'_>) -> Option<Category>;
}