summaryrefslogtreecommitdiff
path: root/mingling/src/program.rs
diff options
context:
space:
mode:
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!()
+ }
+}