flowcode_core/util.rs
1// flowcode-core/src/util.rs
2
3use crate::error::FCError;
4
5/// Parses a vector of string arguments into a vector of f64 numbers.
6/// Returns a Result with the vector of numbers or an error message string.
7pub fn parse_numbers(args: &[String]) -> Result<Vec<f64>, FCError> {
8 let mut numbers = Vec::new();
9 if args.is_empty() {
10 return Err(FCError::InsufficientData("No numbers provided".to_string()));
11 }
12
13 for arg in args {
14 match arg.parse::<f64>() {
15 Ok(num) => numbers.push(num),
16 Err(_) => {
17 return Err(FCError::ParseError(format!("Invalid number format: {}", arg)));
18 }
19 }
20 }
21 Ok(numbers)
22}