// Code generated by ndpgen. DO NOT EDIT. // // This file contains export wrappers for the Lifecycle capability. // It is intended for use in Navidrome plugins built with extism-pdk. /// Error represents an error from a capability method. #[derive(Debug)] pub struct Error { pub message: String, } impl std::fmt::Display for Error { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!(f, "{}", self.message) } } impl std::error::Error for Error {} impl Error { pub fn new(message: impl Into) -> Self { Self { message: message.into() } } } /// InitProvider provides the OnInit function. pub trait InitProvider { fn on_init(&self) -> Result<(), Error>; } /// Register the on_init export. /// This macro generates the WASM export function for this method. #[macro_export] macro_rules! register_lifecycle_init { ($plugin_type:ty) => { #[extism_pdk::plugin_fn] pub fn nd_on_init( ) -> extism_pdk::FnResult<()> { let plugin = <$plugin_type>::default(); $crate::lifecycle::InitProvider::on_init(&plugin)?; Ok(()) } }; }