diff --git a/src/main.rs b/src/main.rs index 57d8ee4..5e15bac 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ use anyhow::{Context, Error, Result}; use future::ok; use futures::prelude::*; use net::{ClientMessage, ServerMessage, server::greet}; -use serde_json::{from_str, to_string, Value}; +use serde_json::{from_str, to_string}; use std::net::ToSocketAddrs; use stream::FuturesUnordered; use structopt::StructOpt; @@ -53,7 +53,7 @@ async fn main() -> Result<()> { async fn handle_socket(websocket: WebSocket) -> Result<()> { let (sink, mut source) = websocket.split(); - let mut sink = sink.with(|msg: ServerMessage, Value>| { + let mut sink = sink.with(|msg: ServerMessage| { let json = to_string(&msg).expect("JSON encoding shouldn't fail"); ok::(Message::text(json)) }); @@ -64,7 +64,7 @@ async fn handle_socket(websocket: WebSocket) -> Result<()> { match source.next().await { Some(Ok(msg)) => match msg.to_str() { Ok(json) => { - let msg = from_str::>(json).context("Parsing JSON")?; + let msg = from_str::(json).context("Parsing JSON")?; debug!("Client message: {:?}", &msg); } Err(()) => debug!("Non-text message"), diff --git a/src/net/mod.rs b/src/net/mod.rs index cf4bdb3..1525fad 100644 --- a/src/net/mod.rs +++ b/src/net/mod.rs @@ -1,10 +1,11 @@ use serde::{Deserialize, Serialize}; +use serde_json::Value; pub mod server; #[derive(Deserialize, Debug)] #[serde(tag = "t")] -pub enum ClientMessage { +pub enum ClientMessage { #[serde(rename = "s")] SetState { s: S }, #[serde(rename = "i")] @@ -21,7 +22,7 @@ pub struct Meta { #[derive(Serialize, Debug)] #[serde(tag = "t")] -pub enum ServerMessage { +pub enum ServerMessage, S = Value> { #[serde(rename = "m")] Meta { #[serde(flatten)] diff --git a/src/net/server.rs b/src/net/server.rs index a8c2e4c..503c44e 100644 --- a/src/net/server.rs +++ b/src/net/server.rs @@ -1,11 +1,11 @@ use anyhow::{Context, Error, Result}; use super::*; use futures::prelude::*; -use serde_json::{Value, json}; +use serde_json::json; use stream::iter; pub async fn greet(sink: &mut T) -> Result<()> -where T: Sink, Value>, Error = Error> + Unpin +where T: Sink + Unpin { let mut greeting = iter(vec![ ServerMessage::Meta {