Common client in Rust for core lightning
This crate provides a generic interface to the core lightning daemon through RPC.
This crate provides a _generic interface_ to the [core lightning](https://github.com/ElementsProject/lightning) daemon through RPC.
From the crate [clightningrpc](../rpc) you can find this quote
>Be aware that the API (of rust-clighting-rpc, but also that of c-lightning
itself) is not finalized. This means that it is likely to change between versions and may break your
compile, sorry!
This crate solve the versioning with core lightning by offering a strongly type library with a generic interface, an example can be:
```rust
extern crate clightningrpc_common;
use serde::{Deserialize, Serialize};
use std::env;
use clightningrpc_common::client;
use clightningrpc_common::types::Response;
/// Example of type definition
#[derive(Debug, Clone, Deserialize, Serialize)]
struct GetInfoResponse {
pub id: String,
}
/// Example of type definition
#[derive(Debug, Clone, Deserialize, Serialize)]
struct GetInfoRequest {}
fn main() {
let sock = env::home_dir().unwrap().join(".lightning/lightning-rpc");
println!("Using socket {}", sock.display());
let client = client::Client::new(&sock);
let method = "getinfo";
let params = GetInfoRequest {};
match client
.send_request(method, params)
.and_then(|res: Response