Skip to main content

Host

Trait Host 

Source
pub trait Host: Sync {
    // Required methods
    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>;

    // Provided methods
    fn zone_offset(&self, zone: &str, epoch_ms: i64) -> Option<i32> { ... }
    fn format_date_time(
        &self,
        locale: &str,
        request: &DateTimeRequest<'_>,
        out: &mut dyn Sink,
    ) -> bool { ... }
    fn numbers(&self) -> Option<&dyn NumberFormatter> { ... }
}
Expand description

The platform services the runtime needs.

Required Methods§

Source

fn nfc<'a>(&self, s: &'a str, buf: &'a mut String) -> &'a str

The NFC form of s, which failed the quick check (it has a code point at or above U+0300). buf is scratch the result may live in.

Source

fn f64_to_text<'b>(&self, x: f64, buf: &'b mut [u8; 32]) -> Option<&'b str>

The shortest decimal text that round-trips the finite x, written into buf: any form number-literal accepts, with an optional + in the exponent (ryu’s 4.2, 1e21, 1.5e-7 and JavaScript’s String(x) both qualify). None if the host cannot produce it.

Provided Methods§

Source

fn zone_offset(&self, zone: &str, epoch_ms: i64) -> Option<i32>

The UTC offset, in seconds east, of the IANA time zone zone at the instant epoch_ms (milliseconds since the epoch). None: the host has no zone data, or knows no such zone (the default) — a date/time function that must convert an instant to a named zone then reports Bad Option and a fallback value (datetime.md allows it; a wall time in the wrong zone would be worse).

Source

fn format_date_time( &self, locale: &str, request: &DateTimeRequest<'_>, out: &mut dyn Sink, ) -> bool

datetime-intl: writes request formatted by the host’s date formatter (the browser’s Intl.DateTimeFormat) for locale, and returns true; false (the default) when the host has none.

Source

fn numbers(&self) -> Option<&dyn NumberFormatter>

intl: the host’s number formatter (in the browser Intl.NumberFormat and Intl.PluralRules, when the engine has Intl.NumberFormat v3); None (the default) when it has none — the numeric functions of an intl client then show exact digits and report Unsupported Operation (plans/03-runtime.md §2.7).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§