Print simple HelloCmd packet

This commit is contained in:
Joscha 2022-02-07 22:44:30 +01:00
parent 0c9f5e91a3
commit 5cf0f76477
5 changed files with 121 additions and 7 deletions

85
Cargo.lock generated
View file

@ -5,11 +5,96 @@ version = 3
[[package]] [[package]]
name = "cove-core" name = "cove-core"
version = "0.1.0" version = "0.1.0"
dependencies = [
"serde",
]
[[package]] [[package]]
name = "cove-server" name = "cove-server"
version = "0.1.0" version = "0.1.0"
dependencies = [
"cove-core",
"serde_json",
]
[[package]] [[package]]
name = "cove-tui" name = "cove-tui"
version = "0.1.0" version = "0.1.0"
[[package]]
name = "itoa"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
[[package]]
name = "proc-macro2"
version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
dependencies = [
"unicode-xid",
]
[[package]]
name = "quote"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
[[package]]
name = "serde"
version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.136"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "syn"
version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
]
[[package]]
name = "unicode-xid"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"

View file

@ -4,3 +4,4 @@ version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
serde = { version = "1.0.136", features = ["derive"] }

View file

@ -1,8 +1,25 @@
#[cfg(test)] use serde::{Deserialize, Serialize};
mod tests {
#[test] #[derive(Debug, Deserialize, Serialize)]
fn it_works() { pub struct HelloCmd {
let result = 2 + 2; pub name: String,
assert_eq!(result, 4);
} }
#[derive(Debug, Deserialize, Serialize)]
pub struct HelloRpl {
pub msg: String,
}
#[derive(Debug, Deserialize, Serialize)]
#[serde(tag = "type")]
pub enum Data {
HelloCmd(HelloCmd),
HelloRpl(HelloRpl),
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Packet {
pub id: u64,
#[serde(flatten)]
pub data: Data,
} }

View file

@ -4,3 +4,5 @@ version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
cove-core = { path = "../cove-core" }
serde_json = "1.0.78"

View file

@ -1,3 +1,12 @@
use cove_core::{Data, HelloCmd, Packet};
fn main() { fn main() {
println!("Hello, world!"); println!("Hello, world!");
let packet = Packet {
id: 1337,
data: Data::HelloCmd(HelloCmd {
name: "Garmy".to_string(),
}),
};
println!("{}", serde_json::to_string(&packet).unwrap());
} }