```rust struct Hello; impl flbplugin::output::Plugin for Hello { const NAME: &'static CStr = constcstr!("hello"); const DESCRIPTION: &'static CStr = const_cstr!("hello plugin");
fn new(config: &output::Config) -> Self {
let param = config.get_property(const_cstr!("param"));
println!("[new] param: {:?}", param);
Hello
}
fn flush(&mut self, tag: &str, mut data: &[u8]) -> Result<(), flb_plugin::Error> {
let value = rmpv::decode::read_value_ref(&mut data).unwrap();
println!("[flush] tag: {tag}, data: {:?}", value);
Ok(())
}
fn exit(self) -> Result<(), flb_plugin::Error> {
println!("[exit]");
Ok(())
}
}
flbplugin::outputplugin_proxy!(Hello); ```