helpers for solar

This commit is contained in:
adria0 2020-04-05 15:00:59 +02:00 committed by adria0.eth
parent 4994495781
commit 3ee2aa2a9d
3 changed files with 8 additions and 3 deletions

View File

@ -1,5 +1,5 @@
use crate::feed::Message; use crate::feed::Message;
use crate::rpc::{BodyType, RequestNo, RpcStream, RpcType}; use crate::rpc::{Body,BodyType, RequestNo, RpcStream, RpcType};
use async_std::io::{Read, Write}; use async_std::io::{Read, Write};
use serde_json; use serde_json;
@ -245,6 +245,10 @@ impl ApiMethod {
_ => None, _ => None,
} }
} }
pub fn from_rpc_body(body : &Body) -> Option<Self> {
let selector = body.name.iter().map(|v| v.as_str()).collect::<Vec<_>>();
Self::from_selector(&selector)
}
} }
pub struct ApiHelper<R: Read + Unpin, W: Write + Unpin> { pub struct ApiHelper<R: Read + Unpin, W: Write + Unpin> {

View File

@ -52,7 +52,7 @@ impl AsRef<[u8]> for MessageId {
} }
} }
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize, Clone)]
pub struct Message { pub struct Message {
pub value: serde_json::Value, pub value: serde_json::Value,
} }

View File

@ -21,7 +21,7 @@ pub enum BodyType {
JSON, JSON,
} }
#[derive(Deserialize)] #[derive(Debug,Deserialize)]
pub struct Body { pub struct Body {
pub name: Vec<String>, pub name: Vec<String>,
#[serde(rename = "type")] #[serde(rename = "type")]
@ -127,6 +127,7 @@ pub struct RpcStream<R: io::Read + Unpin, W: io::Write + Unpin> {
req_no: RequestNo, req_no: RequestNo,
} }
#[derive(Debug)]
pub enum RecvMsg { pub enum RecvMsg {
RpcRequest(Body), RpcRequest(Body),
RpcResponse(BodyType, Vec<u8>), RpcResponse(BodyType, Vec<u8>),