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