From 29f4bda77d5d5b90b2533b80c14f1516af3f7648 Mon Sep 17 00:00:00 2001 From: lordofwizard Date: Thu, 17 Oct 2024 08:04:00 +0530 Subject: [PATCH] [ADD] added baseline config struct --- Cargo.lock | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 + src/config.rs | 23 ++++++++++++ src/main.rs | 3 ++ 4 files changed, 130 insertions(+) create mode 100644 src/config.rs diff --git a/Cargo.lock b/Cargo.lock index 7eaf285..8c825c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,12 +97,34 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "indexmap" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +dependencies = [ + "equivalent", + "hashbrown", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -114,8 +136,16 @@ name = "mcserver" version = "0.1.0" dependencies = [ "clap", + "serde", + "toml", ] +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + [[package]] name = "proc-macro2" version = "1.0.88" @@ -134,6 +164,35 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "serde" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "strsim" version = "0.11.1" @@ -151,6 +210,40 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + [[package]] name = "unicode-ident" version = "1.0.13" @@ -235,3 +328,12 @@ name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +dependencies = [ + "memchr", +] diff --git a/Cargo.toml b/Cargo.toml index dcdc827..b584212 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,3 +7,5 @@ edition = "2021" [dependencies] clap = { version = "4.5.20", features = ["derive"] } +serde = { version = "1.0.210", features = ["derive"] } +toml = "0.8.19" diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..173d4bd --- /dev/null +++ b/src/config.rs @@ -0,0 +1,23 @@ +use serde::{Serialize, Deserialize}; +#[derive(Serialize, Deserialize, Debug)] +struct Config { + mcserver: McServer, + server: Server, +} + +#[derive(Serialize, Deserialize, Debug)] +struct McServer { + project_name: String, + logfile: String, + tunnel: String, + java: String, +} + +#[derive(Serialize, Deserialize, Debug)] +struct Server { + online_mode: bool, + version: String, + server_type: String, + category: String, + providor: String, +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 8716a34..86239bf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,9 @@ mod run; mod setup; mod start; mod stop; +mod config; + + use run::Run; fn main() { println!("Hello, world!");