plugin!() { /* proc-macro */ }Expand description
procedural macros that can be used wit the following code
use serde_json::{json, Value};
use clightningrpc_plugin_macros::{rpc_method, plugin};
use clightningrpc_plugin::commands::RPCCommand;
use clightningrpc_plugin::plugin::Plugin;
use clightningrpc_plugin::errors::PluginError;
#[derive(Clone)]
struct State;
impl State {
pub fn new() -> Self {
Self
}
}
#[rpc_method(
rpc_name = "foo",
description = "This is a simple and short description"
)]
pub fn foo_rpc(plugin: &mut Plugin<State>, request: Value) -> Result<Value, PluginError> {
Ok(json!({"is_dynamic": plugin.dynamic, "rpc_request": request}))
}
fn main() {
let plugin = plugin! {
state: State::new(),
dynamic: true,
notification: [],
methods: [
foo_rpc,
],
};
plugin.start();
}