

16·
12 days agoCan’t resist pointing out how you should actually write the function in a “real” scenario (but still not handling errors properly), in case anyone wants to know.
If the list is guaranteed to have exactly two elements:
fn is_second_num_positive_exact(input: &str) -> bool {
let (_, n) = input.split_once(',').unwrap();
n.parse::<i32>().unwrap() > 0
}
If you want to test the last element:
fn is_last_num_positive(input: &str) -> bool {
let n = input.split(',').next_back().unwrap();
n.parse::<i32>().unwrap() > 0
}
If you want to test the 2nd (1-indexed) element:
fn is_second_num_positive(input: &str) -> bool {
let n = input.split(',').nth(1).unwrap();
n.parse::<i32>().unwrap() > 0
}
Interesting way of handling project vs global scope:
Seems rather implicit, though, especially if the command output doesn’t specify which scope a package was installed in. If a user moves to a subdirectory, forgets they are there, and then tries to install a package, the package will unexpectedly install in global scope (though this particular version of the problem can be solved by also looking in parent directories).