feat: read from stdin if argument missing

This commit is contained in:
electria 2026-07-13 20:09:48 -07:00
commit 877ae39d23
Signed by: electria
SSH key fingerprint: SHA256:8LlB3ucPbBHqozqkhsNbaV5oG3SlzzqUj8FZDL6IPQs
2 changed files with 14 additions and 3 deletions

View file

@ -1,7 +1,18 @@
use std::env;
use std::{
env,
io::{self, Read},
};
mod parse;
fn main() {
println!("{:.3}", parse::parse(env::args().nth(1).unwrap().as_ref()));
let input = match env::args().nth(1) {
Some(s) => s,
None => {
let mut buf = String::new();
io::stdin().read_to_string(&mut buf).unwrap();
buf
}
};
println!("{:.3}", parse::parse(&input));
}

View file

@ -77,7 +77,7 @@ fn nodes_from_str(s: &str) -> Result<Vec<Node>, Error> {
let mut nodes = Vec::new();
let mut state = ParsingState::default();
let is_ignored_char = |c: &char| !matches!(c, ' ' | '&');
let is_ignored_char = |c: &char| !matches!(c, ' ' | '&' | '\n');
let filtered_string: String = s.chars().filter(is_ignored_char).collect();