diff --git a/Cargo.lock b/Cargo.lock index ba42cdb..36f026a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1003,6 +1003,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "cobs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" +dependencies = [ + "thiserror 2.0.17", +] + [[package]] name = "color-eyre" version = "0.6.5" @@ -1344,6 +1353,18 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "encase" version = "0.11.2" @@ -2324,6 +2345,18 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "postcard" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" +dependencies = [ + "cobs", + "embedded-io 0.4.0", + "embedded-io 0.6.1", + "serde", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -2811,6 +2844,10 @@ dependencies = [ [[package]] name = "striker-proto" version = "0.1.0" +dependencies = [ + "postcard", + "serde", +] [[package]] name = "strsim" diff --git a/Cargo.toml b/Cargo.toml index 4042be6..408b463 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,10 @@ edition = "2024" repository = "https://tangled.org/sachy.dev/striker" license = "MIT OR Apache-2.0" +[workspace.dependencies] +serde = { version = "1.0.210", default-features = false } +postcard = { version = "1.1.3", default-features = false } + [package] name = "striker" version = "0.1.0" diff --git a/striker-proto/Cargo.toml b/striker-proto/Cargo.toml index 6d8d66d..8ed27a9 100644 --- a/striker-proto/Cargo.toml +++ b/striker-proto/Cargo.toml @@ -7,3 +7,5 @@ repository.workspace = true license.workspace = true [dependencies] +serde = { workspace = true, features = ["alloc"] } +postcard = { workspace = true, features = ["alloc"] } diff --git a/striker-proto/src/lib.rs b/striker-proto/src/lib.rs index b93cf3f..f05881a 100644 --- a/striker-proto/src/lib.rs +++ b/striker-proto/src/lib.rs @@ -1,14 +1,38 @@ -pub fn add(left: u64, right: u64) -> u64 { - left + right +#[derive(Debug, serde::Serialize, serde::Deserialize)] +pub struct StrikerRequest { + pub request: Request, } -#[cfg(test)] -mod tests { - use super::*; +#[derive(Debug, serde::Serialize, serde::Deserialize)] +pub enum Request { + Ping, +} + +#[derive(Debug, serde::Serialize, serde::Deserialize)] +pub enum StrikerResponse { + Response { + response: Response, + }, + Update(Update), +} - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } +#[derive(Debug, serde::Serialize, serde::Deserialize)] +pub enum Response { + Pong, } + +#[derive(Debug, serde::Serialize, serde::Deserialize)] +pub enum Update { + Warning { + timestamp: i64, + level: u16, + }, + Strike { + timestamp: i64, + peaks: Vec, + samples: Vec, + average: u16, + }, +} + +