Trait Localize

Source
pub trait Localize<T: AsRef<str> + From<String>> {
    // Required methods
    fn lookup<K: AsRef<str>>(&self, key: K) -> Option<T>;
    fn is_empty(&self) -> bool;

    // Provided methods
    fn localize<K: AsRef<str>>(&self, key: K) -> Result<T, LocalizationError> { ... }
    fn localize_provider<K: AsRef<str>>(
        &self,
        key: K,
        provider: &str,
        value: &str,
    ) -> Result<T, LocalizationError> { ... }
    fn localize_query<K: AsRef<str>, S: AsRef<str>, F: Fn(&Vec<(String, Vec<String>)>) -> Option<S>>(
        &self,
        key: K,
        query: F,
    ) -> Result<T, LocalizationError> { ... }
}

Required Methods§

Source

fn lookup<K: AsRef<str>>(&self, key: K) -> Option<T>

A simple function that looks up raw value associated with the given localization key

Source

fn is_empty(&self) -> bool

Provided Methods§

Source

fn localize<K: AsRef<str>>(&self, key: K) -> Result<T, LocalizationError>

A simple localization function that will return the localized string. It assumes that the key is not complex and does not require any special handling.

Source

fn localize_provider<K: AsRef<str>>( &self, key: K, provider: &str, value: &str, ) -> Result<T, LocalizationError>

A localization function that will return the localized string. It assumes a more complex key, resolving $provider$ into the value. More complex keys will not be resolved.

Source

fn localize_query<K: AsRef<str>, S: AsRef<str>, F: Fn(&Vec<(String, Vec<String>)>) -> Option<S>>( &self, key: K, query: F, ) -> Result<T, LocalizationError>

A localization function that will return the localized string. It allows for complete control over the complex key resolution. Every time a $key$ or [function(arg)] is encountered, the query function will be called. The query function should return the value in accordance to the provided stack, or None if the value is not found. Whether None causes an error or not is up to the implementation.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Localize<String> for Value

Source§

fn lookup<K: AsRef<str>>(&self, key: K) -> Option<String>

Source§

fn is_empty(&self) -> bool

Implementors§