Trait plugin::Pluggable
[-] [+]
[src]
pub trait Pluggable {
fn get<P: Plugin<Self>>(&mut self) -> Result<P, P> where P: Clone + Any, Self: Extensible { ... }
fn get_ref<P: Plugin<Self>>(&mut self) -> Result<&P, P> where P: Any, Self: Extensible { ... }
fn get_mut<P: Plugin<Self>>(&mut self) -> Result<&mut P, P> where P: Any, Self: Extensible { ... }
fn compute<P: Plugin<Self>>(&mut self) -> Result<P, P> { ... }
}An interface for plugins that cache values between calls.
R is the type of the plugin's return value, which must be cloneable.
Provided Methods
fn get<P: Plugin<Self>>(&mut self) -> Result<P, P> where P: Clone + Any, Self: Extensible
Return a copy of the plugin's produced value.
The plugin will be created if it doesn't exist already. If plugin creation fails, an error is returned.
P is the plugin type.
fn get_ref<P: Plugin<Self>>(&mut self) -> Result<&P, P> where P: Any, Self: Extensible
Return a reference to the plugin's produced value.
The plugin will be created if it doesn't exist already. If plugin creation fails an error is returned.
P is the plugin type.
fn get_mut<P: Plugin<Self>>(&mut self) -> Result<&mut P, P> where P: Any, Self: Extensible
Return a mutable reference to the plugin's produced value.
The plugin will be created if it doesn't exist already. If plugin creation fail an error is returned.
P is the plugin type.
fn compute<P: Plugin<Self>>(&mut self) -> Result<P, P>
Create and evaluate a once-off instance of a plugin.