From e05a94f1683c296ded361d7468247ee61a4e2379 Mon Sep 17 00:00:00 2001 From: Slavasil Date: Wed, 18 Mar 2026 00:35:59 +0300 Subject: [PATCH] add config structs --- Cargo.lock | 19 +++++++++++++++++++ Cargo.toml | 2 ++ src/config.rs | 31 +++++++++++++++++++++++++++++++ src/main.rs | 2 +- 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 src/config.rs diff --git a/Cargo.lock b/Cargo.lock index c1a57d4..b32b6c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -486,6 +486,8 @@ name = "bot" version = "0.1.0" dependencies = [ "deltachat", + "eui48", + "serde", ] [[package]] @@ -1527,6 +1529,17 @@ dependencies = [ "entities", ] +[[package]] +name = "eui48" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "887418ac5e8d57c2e66e04bdc2fe15f9a5407be20b54a82c86bd0e368b709701" +dependencies = [ + "regex", + "rustc-serialize", + "serde", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -4401,6 +4414,12 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +[[package]] +name = "rustc-serialize" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe834bc780604f4674073badbad26d7219cadfb4a2275802db12cbae17498401" + [[package]] name = "rustc_version" version = "0.4.1" diff --git a/Cargo.toml b/Cargo.toml index f0c5b55..684884e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,3 +5,5 @@ edition = "2024" [dependencies] deltachat = { path = "./chatmail-core" } +eui48 = { version = "1.1.0", features = [ "serde" ] } +serde = { version = "1", features = [ "derive" ] } diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..281a20a --- /dev/null +++ b/src/config.rs @@ -0,0 +1,31 @@ +use eui48::MacAddress; +use serde::{Deserialize, self}; +use std::{collections::HashMap, net::IpAddr}; + +#[derive(Deserialize)] +struct BotConfig { + pub auth: BotUserAuthConfig, + pub machines: HashMap, + #[serde(rename = "deltaChat")] + pub delta_chat: BotDeltaChatConfig, +} + +#[derive(Deserialize)] +struct BotUserAuthConfig { + pub password: String, +} + +#[derive(Deserialize)] +struct BotTargetMachineConfig { + #[serde(rename = "default")] + is_default: bool, + mac: MacAddress, + #[serde(rename = "staticIp")] + static_ip: IpAddr, +} + +#[derive(Deserialize)] +struct BotDeltaChatConfig { + email: String, + password: String, +} diff --git a/src/main.rs b/src/main.rs index 336d023..4cb4dc9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ - +mod config; fn main() {