Trait plugin::Plugin
[−]
[src]
pub trait Plugin<E: ?Sized>: Key { type Error; fn eval(&mut E) -> Result<Self::Value, Self::Error>; }
Implementers of this trait can act as plugins for other types, via OtherType::get<P>()
.
To create a plugin, implement this trait and provide an empty implementation
of Key
to associate the plugin with its return type, Key::Value
.
Associated Types
type Error
The error type associated with this plugin.
Required Methods
fn eval(&mut E) -> Result<Self::Value, Self::Error>
Create the plugin from an instance of the extended type.
While eval
is given a mutable reference to the extended
type, it is important for implementers to remember that
the result of eval
is usually cached, so care should
be taken when doing mutation on the extended type.