1mod code;
2mod eval;
3
4pub use code::*;
5pub use eval::*;
6
7use crate::cli::*;
8use clap::{crate_description, crate_version, App, AppSettings::*, ArgMatches};
9
10pub struct Main;
11impl<'c> CLI<'c> for Main {
12 const NAME: &'c str = "Statecharts Rhapsody";
13 const USAGE: &'c str = "";
14
15 fn command<'s: 'c>() -> App<'c, 's> {
16 let cmd = App::new(Self::NAME);
17 cmd.settings(&[VersionlessSubcommands, SubcommandRequiredElseHelp])
18 }
19
20 fn additional_usage<'s>(cmd: App<'s, 'c>) -> App<'s, 'c> {
21 cmd.version(crate_version!()).about(crate_description!())
22 }
23
24 fn invoke(_matches: &ArgMatches) -> Result<()> {
25 Ok(())
26 }
27}