From 5291008baab7022e8d294bfe6111b4f508135f9c Mon Sep 17 00:00:00 2001 From: alexion Date: Sat, 5 Sep 2026 20:01:06 -0400 Subject: [PATCH] refactor(ariadne): reduce Rust skeleton --- src/ariadne/src/lib.rs | 1 + src/ariadne/src/main.rs | 95 +---------------------------------------- 2 files changed, 2 insertions(+), 94 deletions(-) diff --git a/src/ariadne/src/lib.rs b/src/ariadne/src/lib.rs index e69de29..fec4af1 100644 --- a/src/ariadne/src/lib.rs +++ b/src/ariadne/src/lib.rs @@ -0,0 +1 @@ +pub fn run() {} diff --git a/src/ariadne/src/main.rs b/src/ariadne/src/main.rs index 9377cf0..41b95fa 100644 --- a/src/ariadne/src/main.rs +++ b/src/ariadne/src/main.rs @@ -1,96 +1,3 @@ -const COMMAND_NAME: &str = "ariadne"; - -#[derive(Debug, PartialEq, Eq)] -struct Request { - command: Command, -} - -#[derive(Debug, PartialEq, Eq)] -enum Command { - Help, -} - -#[derive(Debug, PartialEq, Eq)] -enum Error { - UnknownArgument { value: String }, -} - fn main() { - match parse_args(std::env::args()) { - Ok(request) => run(request.command), - Err(error) => exit_with_error(error), - } -} - -fn run(command: Command) { - match command { - Command::Help => print!("{}", help_text()), - } -} - -fn parse_args(args: impl IntoIterator) -> Result { - let mut args = args.into_iter(); - let _program = args.next(); - - match args.next() { - None => Ok(Request { - command: Command::Help, - }), - Some(value) if value == "--help" || value == "-h" => Ok(Request { - command: Command::Help, - }), - Some(value) => Err(Error::UnknownArgument { value }), - } -} - -fn help_text() -> String { - format!( - "Ariadne\n\nUsage: {COMMAND_NAME} [--help]\n\nCommands will inspect prepared Ren'Py source.\n" - ) -} - -fn exit_with_error(error: Error) -> ! { - match error { - Error::UnknownArgument { value } => eprintln!("ariadne: unknown argument: {value}"), - } - std::process::exit(2); -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn no_arguments_request_help() { - let request = parse_args(["ariadne".to_string()]).unwrap(); - - assert_eq!(request.command, Command::Help); - } - - #[test] - fn help_flag_requests_help() { - let request = parse_args(["ariadne".to_string(), "--help".to_string()]).unwrap(); - - assert_eq!(request.command, Command::Help); - } - - #[test] - fn unknown_argument_returns_error() { - let result = parse_args(["ariadne".to_string(), "--unknown".to_string()]); - - assert_eq!( - result, - Err(Error::UnknownArgument { - value: "--unknown".to_string(), - }) - ); - } - - #[test] - fn help_text_mentions_title_and_command() { - let help = help_text(); - - assert!(help.contains("Ariadne")); - assert!(help.contains("Usage: ariadne")); - } + ariadne::run(); }