8个版本
0.3.0-beta.8 | 2023年6月13日 |
---|---|
0.3.0-beta.7 | 2023年1月7日 |
0.3.0-beta.6 | 2022年11月18日 |
0.3.0-beta.5 | 2022年9月3日 |
0.1.0-beta.1 | 2022年7月29日 |
5 在 #cln
每月88次 下载
用于 clightningrpc-plugin-macr…
39KB
685 行
提供过程式宏实现,简化插件开发。
extern crate clightningrpc_plugin;
use clightningrpc_plugin::types::LogLevel;
use clightningrpc_plugin::{commands::RPCCommand, plugin::Plugin};
use serde_json::{json, Value};
#[derive(Clone)]
struct PluginState(());
/// HelloRPC is used to register the RPC method
#[derive(Clone)]
struct HelloRPC {}
/// Implementation of the RPC method
impl RPCCommand<PluginState> for HelloRPC {
fn call<'c>(&self, plugin: &mut Plugin<PluginState>, _request: &'c Value) -> Value {
plugin.log(LogLevel::Debug, "call the custom rpc method from rust");
json!({
"language": "Hello from rust"
})
}
}
#[derive(Clone)]
struct OnChannelOpened {}
impl RPCCommand<PluginState> for OnChannelOpened {
fn call_void<'c>(&self, _plugin: &mut Plugin<PluginState>, _request: &'c Value) {
_plugin.log(LogLevel::Debug, "A new channel was opened!");
}
}
fn main() {
let mut plugin = Plugin::<PluginState>::new(PluginState(()), true)
.add_rpc_method(
"hello",
"",
"show how is possible add a method",
HelloRPC {},
)
.add_opt(
"foo",
"flag",
None,
"An example of command line option",
false,
)
.register_notification("channel_opened", OnChannelOpened {})
.clone();
plugin.start();
}
贡献指南
阅读我们的黑客指南
支持
如果您想支持这个库,请考虑以下方式捐赠:
- Lightning地址: [email protected]
- Github捐赠
依赖项
~0.7–1.7MB
~36K SLoC