impl {{ plugin_path }} for {{ wrapper_name }} {
    fn name(&self) -> &str {
        self.name_cache.get_or_init(|| self.inner.alef_name()).as_str()
    }

    fn version(&self) -> String {
        self.inner.alef_version()
    }

    fn initialize(&self) -> {{ result_type }} {
        decode_inbound_envelope::<()>(&self.inner.alef_initialize()).map(|_| ())
    }

    fn shutdown(&self) -> {{ result_type }} {
        decode_inbound_envelope::<()>(&self.inner.alef_shutdown()).map(|_| ())
    }
}
