diff --git a/rust/Cargo.toml b/rust/Cargo.toml index b90ac66..13b315e 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -5,9 +5,10 @@ edition = "2021" [dependencies] anyhow = "1.0" -chrono = "0.4.41" +chrono = { version = "0.4.41", features = ["serde"] } clap = { version = "4.5.0", features = ["derive"] } dirs = "5.0.1" +serde = { version = "1.0.219", features = ["derive"] } +serde_json = { version = "1.0.140", features = ["default"] } thiserror = "2.0.12" -tokio = { version = "1.42.0", features = ["full", "rt"] } diff --git a/rust/src/main.rs b/rust/src/main.rs index 2a77346..43a929d 100644 --- a/rust/src/main.rs +++ b/rust/src/main.rs @@ -1,24 +1,36 @@ #![allow(dead_code, unused)] -use chrono::{DateTime, Local}; -use tokio::{ - fs, -}; +use chrono::{DateTime, Local, Utc}; use dirs::config_dir; +use serde::{self, Deserialize, Serialize}; +use serde_json; -const BLOCK_SIZE: usize = 1024; -const TIMEOUT_LIMIT: usize = 32; +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct TestStruct { + name: String, + id: u128, + time: DateTime, + pos: SubStruct, +} -#[tokio::main] -async fn main() -> anyhow::Result<()> { - let mut interfaces = fs::read_dir("/sys/class/net").await?; +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct SubStruct { + x: i32, + y: i32, +} - while let Ok(Some(interface)) = interfaces.next_entry().await { - let if_name = interface.file_name().into_string().unwrap(); - if !(if_name == "lo") && !if_name.contains("loop") { - println!("name: {}", if_name); - } - } +fn main() -> anyhow::Result<()> { + let test = TestStruct { + name: "ronald yellowegger".to_owned(), + id: 029854u128, + time: chrono::Utc::now(), + pos: SubStruct { x: 8, y: -3 }, + }; + + let json = serde_json::to_string(&test)?; + + println!("json = \\"); + println!("{}", json); Ok(()) }