//! Example Setup //! //! > This example demonstrates how to build a custom Setup for modular management of project components use mingling::{Program, macros::program_setup, prelude::*}; fn main() { let mut program = ThisProgram::new(); // --------- IMPORTANT --------- // Introduce `CustomSetup` generated by `custom_setup` program.with_setup(CustomSetup); // --------- IMPORTANT --------- program.exec_and_exit(); } // --------- IMPORTANT --------- // Define `CustomSetup` (inferred from `custom_setup`) // Package part of the program construction logic into this type for modular management #[program_setup] fn custom_setup(program: &mut Program) { program.with_dispatchers((CMD1, CMD2, CMD3, CMD4, CMD5)); } // --------- IMPORTANT --------- dispatcher!("1", CMD1 => Entry1); dispatcher!("2", CMD2 => Entry2); dispatcher!("3", CMD3 => Entry3); dispatcher!("4", CMD4 => Entry4); dispatcher!("5", CMD5 => Entry5); gen_program!();