summaryrefslogtreecommitdiff
path: root/mingling/src/program.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-03-28 00:47:46 +0800
committer魏曹先生 <1992414357@qq.com>2026-03-28 00:47:46 +0800
commit7ce68cd11516bd7cf037ecea99a92aee7c31b2c3 (patch)
treea3923ad41c91aa21fe169fd6b4b1bf8898a82589 /mingling/src/program.rs
Add initial Mingling framework codebase
Diffstat (limited to 'mingling/src/program.rs')
-rw-r--r--mingling/src/program.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/mingling/src/program.rs b/mingling/src/program.rs
new file mode 100644
index 0000000..e4bc3d0
--- /dev/null
+++ b/mingling/src/program.rs
@@ -0,0 +1,35 @@
+use crate::asset::dispatcher::Dispatcher;
+use std::env;
+
+pub mod setup;
+
+mod config;
+pub use config::*;
+
+mod flag;
+pub use flag::*;
+
+#[derive(Default)]
+pub struct Program {
+ pub(crate) args: Vec<String>,
+ pub(crate) dispatcher: Vec<Box<dyn Dispatcher>>,
+
+ pub stdout_setting: ProgramStdoutSetting,
+ pub user_context: ProgramUserContext,
+}
+
+impl Program {
+ /// Creates a new Program instance, initializing args from environment.
+ pub fn new() -> Self {
+ Program {
+ args: env::args().collect(),
+ dispatcher: Vec::new(),
+ ..Default::default()
+ }
+ }
+
+ /// Run the command line program
+ pub async fn exec(self) {
+ todo!()
+ }
+}