Use bincode instead of serde_json in iced_sentinel
This commit is contained in:
parent
4f8ed7d6ee
commit
0870b158d7
4 changed files with 33 additions and 37 deletions
|
|
@ -128,6 +128,7 @@ iced_widget = { version = "0.13.0-dev", path = "widget" }
|
|||
iced_winit = { version = "0.13.0-dev", path = "winit" }
|
||||
|
||||
async-std = "1.0"
|
||||
bincode = "1.3"
|
||||
bitflags = "2.0"
|
||||
bytemuck = { version = "1.0", features = ["derive"] }
|
||||
cosmic-text = "0.10"
|
||||
|
|
@ -151,7 +152,6 @@ raw-window-handle = "0.6"
|
|||
resvg = "0.36"
|
||||
rustc-hash = "1.0"
|
||||
serde = "1.0"
|
||||
serde_json = "1.0"
|
||||
semver = "1.0"
|
||||
smol = "1.0"
|
||||
smol_str = "0.2"
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ iced_core.workspace = true
|
|||
iced_style.workspace = true
|
||||
iced_style.features = ["serde"]
|
||||
|
||||
serde_json.workspace = true
|
||||
bincode.workspace = true
|
||||
futures.workspace = true
|
||||
log.workspace = true
|
||||
|
||||
|
|
|
|||
|
|
@ -69,16 +69,11 @@ async fn send(
|
|||
stream: &mut io::BufStream<net::TcpStream>,
|
||||
input: Input,
|
||||
) -> Result<(), io::Error> {
|
||||
stream
|
||||
.write_all(
|
||||
format!(
|
||||
"{}\n",
|
||||
serde_json::to_string(&input).expect("Serialize input message")
|
||||
)
|
||||
.as_bytes(),
|
||||
)
|
||||
.await?;
|
||||
let bytes = bincode::serialize(&input).expect("Encode input message");
|
||||
let size = bytes.len() as u64;
|
||||
|
||||
stream.write_all(&size.to_be_bytes()).await?;
|
||||
stream.write_all(&bytes).await?;
|
||||
stream.flush().await?;
|
||||
|
||||
Ok(())
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ use futures::future;
|
|||
use futures::stream::{self, Stream, StreamExt};
|
||||
use semver::Version;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tokio::io::{self, AsyncBufReadExt, BufStream};
|
||||
use tokio::io::{self, AsyncReadExt, BufStream};
|
||||
use tokio::net;
|
||||
|
||||
pub const SOCKET_ADDRESS: &str = "127.0.0.1:9167";
|
||||
|
|
@ -74,33 +74,34 @@ async fn connect() -> Result<net::TcpStream, io::Error> {
|
|||
async fn receive(
|
||||
mut stream: BufStream<net::TcpStream>,
|
||||
) -> Result<(BufStream<net::TcpStream>, Event), io::Error> {
|
||||
let mut input = String::new();
|
||||
let mut bytes = Vec::new();
|
||||
|
||||
loop {
|
||||
match stream.read_line(&mut input).await? {
|
||||
0 => return Ok((stream, Event::Disconnected)),
|
||||
n => {
|
||||
match serde_json::from_str(&input[..n]) {
|
||||
Ok(input) => {
|
||||
return Ok((
|
||||
stream,
|
||||
match dbg!(input) {
|
||||
Input::Connected(version) => {
|
||||
Event::Connected(version)
|
||||
}
|
||||
Input::TimingMeasured(timing) => {
|
||||
Event::TimingMeasured(timing)
|
||||
}
|
||||
Input::ThemeChanged(palette) => {
|
||||
Event::ThemeChanged(palette)
|
||||
}
|
||||
},
|
||||
))
|
||||
}
|
||||
Err(_) => {
|
||||
// TODO: Log decoding error
|
||||
}
|
||||
}
|
||||
let size = stream.read_u64().await? as usize;
|
||||
|
||||
if bytes.len() < size {
|
||||
bytes.resize(size, 0);
|
||||
}
|
||||
|
||||
let _n = stream.read_exact(&mut bytes[..size]).await?;
|
||||
|
||||
match bincode::deserialize(&bytes) {
|
||||
Ok(input) => {
|
||||
return Ok((
|
||||
stream,
|
||||
match dbg!(input) {
|
||||
Input::Connected(version) => Event::Connected(version),
|
||||
Input::TimingMeasured(timing) => {
|
||||
Event::TimingMeasured(timing)
|
||||
}
|
||||
Input::ThemeChanged(palette) => {
|
||||
Event::ThemeChanged(palette)
|
||||
}
|
||||
},
|
||||
));
|
||||
}
|
||||
Err(_) => {
|
||||
// TODO: Log decoding error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue