Skip to main content

ModelHost

Trait ModelHost 

Source
pub trait ModelHost {
    // Required methods
    fn models(&self) -> &ModelStore;
    fn models_mut(&mut self) -> &mut ModelStore;

    // Provided methods
    fn read<T: Any, R>(
        &mut self,
        model: &Model<T>,
        f: impl FnOnce(&mut Self, &T) -> R,
    ) -> Result<R, ModelUpdateError> { ... }
    fn model_revision<T: Any>(&self, model: &Model<T>) -> Option<u64> { ... }
    fn update_model<T: Any, R>(
        &mut self,
        model: &Model<T>,
        f: impl FnOnce(&mut T, &mut ModelCx<'_, Self>) -> R,
    ) -> Result<R, ModelUpdateError> { ... }
}
Expand description

Host surface required to read and update models stored in a ModelStore.

This trait is intentionally portable and is implemented by higher-level containers like fret-app::App.

Required Methods§

Source

fn models(&self) -> &ModelStore

Source

fn models_mut(&mut self) -> &mut ModelStore

Provided Methods§

Source

fn read<T: Any, R>( &mut self, model: &Model<T>, f: impl FnOnce(&mut Self, &T) -> R, ) -> Result<R, ModelUpdateError>

Source

fn model_revision<T: Any>(&self, model: &Model<T>) -> Option<u64>

Source

fn update_model<T: Any, R>( &mut self, model: &Model<T>, f: impl FnOnce(&mut T, &mut ModelCx<'_, Self>) -> R, ) -> Result<R, ModelUpdateError>

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.

Implementors§