pub trait PitPluginPlugin {
// Required methods
fn choose_type(
&self,
opts: &Opts<Module<'static>>,
) -> Result<Option<TokenStream>>;
fn emit_method(
&self,
opts: &Opts<Module<'static>>,
i: &Interface,
s: &str,
value: TokenStream,
params: &[TokenStream],
) -> Result<TokenStream>;
fn post(
&self,
parent: &PitPlugin,
opts: &Opts<Module<'static>>,
) -> Result<TokenStream>;
}