Rust core lightning plugin macros crate

Crate that provides a procedural macros implementation to make easy to develop a plugin developer to build a plugin.

Project Homepage

GitHub Workflow Status (branch) Crates.io docs.rs

Crate that provides a procedural macros implementation to make easy to develop a plugin developer to build a plugin.

```rust use serdejson::json; use serdejson::Value;

use clightningrpcpluginmacros::*; use clightningrpcplugin::commands::RPCCommand; use clightningrpcplugin::errors::PluginError; use clightningrpc_plugin::plugin::Plugin;

[derive(Clone)]

struct State;

// FIXME: implement a derive macros to register // the option plugins impl State { pub fn new() -> Self { Self } }

[rpc_method(

rpc_name = "foo_macro",
description = "This is a simple and short description"

)] pub fn foorpc(plugin: &mut Plugin, request: Value) -> Result { let response = json!({"isdynamic": plugin.dynamic, "rpc_request": request}); Ok(response) }

[notification(on = "rpc_command")]

fn onrpc(plugin: &mut Plugin, request: &Value) { use clightningrpcplugin::types::LogLevel; plugin.log(LogLevel::Info, "received an RPC notification"); }

fn main() { let plugin = plugin! { state: State::new(), dynamic: true, notification: [ onrpc, ], methods: [ foorpc, ], hooks: [], }; plugin.start(); } ```

Contributing guidelines

Supports

If you want support this library consider to donate with the following methods