From 5dda54ecd49a43e79a52ded2a0fc0f1017689197 Mon Sep 17 00:00:00 2001 From: Strubbelkopp Date: Fri, 25 Jul 2025 12:20:17 +0200 Subject: Add optional argument to select a specific style --- src/mikuart.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/mikuart.rs') diff --git a/src/mikuart.rs b/src/mikuart.rs index 5ba1849..6d7b5c9 100644 --- a/src/mikuart.rs +++ b/src/mikuart.rs @@ -3,7 +3,7 @@ use rand::Rng; -pub fn get_miku_art() -> Vec<&'static str> { +pub fn get_miku_art(style: i32) -> Vec<&'static str> { let mut rng = rand::rng(); let styles = vec![ //MARK: small art @@ -504,6 +504,6 @@ pub fn get_miku_art() -> Vec<&'static str> { ], ]; - let selected_style = rng.random_range(0..styles.len()); + let selected_style = if style < 0 { rng.random_range(0..styles.len()) } else { style as usize }; styles[selected_style].clone() } -- cgit v1.3-2-g0d8e From feb0a2076c57e0a8392c41f1cc5667e43c3073e7 Mon Sep 17 00:00:00 2001 From: Strubbelkopp Date: Fri, 25 Jul 2025 12:47:52 +0200 Subject: Ensure manually selected style doesn't exceed the maximum --- src/mikuart.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/mikuart.rs') diff --git a/src/mikuart.rs b/src/mikuart.rs index 6d7b5c9..4197c60 100644 --- a/src/mikuart.rs +++ b/src/mikuart.rs @@ -504,6 +504,9 @@ pub fn get_miku_art(style: i32) -> Vec<&'static str> { ], ]; + if style > 0 && style as usize >= styles.len() { + panic!("Style {} does not exist! Chooese one below {}", style, styles.len()); + } let selected_style = if style < 0 { rng.random_range(0..styles.len()) } else { style as usize }; styles[selected_style].clone() } -- cgit v1.3-2-g0d8e From 7a3ed2ba020cc36b8dac59a07e9925e6d1a50710 Mon Sep 17 00:00:00 2001 From: Strubbelkopp Date: Fri, 25 Jul 2025 12:52:06 +0200 Subject: Run cargo fmt --- src/main.rs | 6 +++--- src/mikuart.rs | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'src/mikuart.rs') diff --git a/src/main.rs b/src/main.rs index 715d34b..354b88c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ +use clap::Parser; use crossterm::terminal::size; use std::env; use unicode_width::UnicodeWidthStr; -use clap::Parser; mod mikuart; use mikuart::get_miku_art; @@ -19,11 +19,11 @@ struct Args { fn main() -> Result<(), Box> { let args = Args::parse(); - + let text = args.text; let style = match args.style { Some(s) => s, - None => -1 // Default to -1 to select a random style + None => -1, // Default to -1 to select a random style }; draw_miku_says(&text, style)?; diff --git a/src/mikuart.rs b/src/mikuart.rs index 4197c60..44915b6 100644 --- a/src/mikuart.rs +++ b/src/mikuart.rs @@ -505,8 +505,16 @@ pub fn get_miku_art(style: i32) -> Vec<&'static str> { ]; if style > 0 && style as usize >= styles.len() { - panic!("Style {} does not exist! Chooese one below {}", style, styles.len()); + panic!( + "Style {} does not exist! Chooese one below {}", + style, + styles.len() + ); } - let selected_style = if style < 0 { rng.random_range(0..styles.len()) } else { style as usize }; + let selected_style = if style < 0 { + rng.random_range(0..styles.len()) + } else { + style as usize + }; styles[selected_style].clone() } -- cgit v1.3-2-g0d8e