use indoc::indoc; pub fn print_help(sub_command: Option<&str>) { let help = match sub_command.unwrap_or("none") { "dry-run" => indoc! {" three_em dry-run [options] Runs a local contract with local interactions provided in a configuration file. Options: --host Gateway url to be used by SmartWeave APIs (Default: arweave.net) [string] --port Gateway port to be used (Default: 443) [string] --protocol Protocol to be used for gateway communication (Default: https) [http|https] --pretty-print Whether state result should be in JSON prettified form (Default: false) [boolean] --show-validity Whether validity table should be included in output (Default: false) [boolean] --file Path to configuration file to be used (Required) [string] "}, "run" => indoc! {" three_em run [options] Runs a contract deployed to the Arweave network. Options: --contract-id ID of contract to be evaluated (Required) [string] --host Gateway url to be used by Executor & SmartWeave APIs (Default: arweave.net) [string] --port Gateway port to be used (Default: 443) [string] --protocol Protocol to be used for gateway communication (Default: https) [http|https] --pretty-print Whether state result should be in JSON prettified form (Default: false) [boolean] --show-validity Whether validity table should be included in output (Default: false) [boolean] --no-print Whether no output should be displayed (Default: false) [boolean] --benchmark Whether execution time should be displayed (Default: false) [boolean] --no-cache Whether cache system should be used for evaluation (Default: true) [boolean] --show-errors Whether exceptions thrown during evaluation should be shown (Default: false) [boolean] --save Path to file where output will be saved [string] --height Maximum height to be evaluated [number] "}, "serve" => indoc! {" three_em serve [options] Creates a server with an API to evaluate contracts. Options: --host Host to be used by the server (Default: 127.0.0.1) [string] --port Port to be used by the server (Default: 5400) [number] "}, "none" | _ => indoc! {" three_em [options] Commands: three_em run [options] Evaluates the latest state of a deployed contract. three_em dry-run [options] Evaluates the latest state of a local contract. three_em serve [options] Spawns a local server with an endpoint to evaluate contracts. "}, }; println!("{}", help); }