unify comandline parsing into function

This commit is contained in:
Franz Dietrich 2026-01-02 11:53:18 +01:00
parent cadc5a6798
commit 6f29d97bb6
2 changed files with 14 additions and 22 deletions

View File

@ -129,17 +129,7 @@ pub fn turtle_main(args: TokenStream, input: TokenStream) -> TokenStream {
#[macroquad::main(#window_title)]
async fn main() {
// Parse command-line arguments for SVG export FIRST (before any graphics init)
let args: Vec<String> = std::env::args().collect();
let mut export_svg_path: Option<String> = None;
let mut i = 1;
while i < args.len() {
if args[i] == "--export-svg" && i + 1 < args.len() {
export_svg_path = Some(args[i + 1].clone());
break;
}
i += 1;
}
let export_svg_path = turtle_lib::export::parse_svg_export_arg();
// Handle SVG export mode (execute instantly without rendering)
if let Some(filename) = export_svg_path {
@ -220,17 +210,7 @@ pub fn turtle_main(args: TokenStream, input: TokenStream) -> TokenStream {
#[macroquad::main(#window_title)]
async fn main() {
// Parse command-line arguments for SVG export FIRST (before any graphics init)
let args: Vec<String> = std::env::args().collect();
let mut export_svg_path: Option<String> = None;
let mut i = 1;
while i < args.len() {
if args[i] == "--export-svg" && i + 1 < args.len() {
export_svg_path = Some(args[i + 1].clone());
break;
}
i += 1;
}
let export_svg_path = turtle_lib::export::parse_svg_export_arg();
// Handle SVG export mode (execute instantly without rendering)
if let Some(filename) = export_svg_path {

View File

@ -24,3 +24,15 @@ pub trait DrawingExporter {
/// Returns an error if the export fails (e.g., file I/O error)
fn export(&self, world: &TurtleWorld, filename: &str) -> Result<(), ExportError>;
}
pub fn parse_svg_export_arg() -> Option<String> {
let args: Vec<String> = std::env::args().collect();
let mut i = 1;
while i < args.len() {
if args[i] == "--export-svg" && i + 1 < args.len() {
return Some(args[i + 1].clone());
}
i += 1;
}
None
}