Warning: Some posts on this platform may contain adult material intended for mature audiences only. Viewer discretion is advised. By clicking ‘Continue’, you confirm that you are 18 years or older and consent to viewing explicit content.
Also, anyhow::Context provides a convenient way to turn Option<T> and Result<T, Into<anyhow::Error>> into anyhow::Result<T>
Like this:
use anyhow::Context;
// to my understanding it's better to // specify the types when their names // are the same as in prelude to improve// readability and reduce name clashingfnmain() -> anyhow::Result<()> {
lettext = "seeds: 79 14 55 13\nwhatever";
letseeds: Vec<u32> = text
.lines()
.next()
.context("No first line!")? // This line has changed
.split_whitespace()
.skip(1)
.map(str::parse)
.collect::<Result<_, _>>()?;
println!("seeds: {:?}", seeds);
Ok(())
}
Also,
anyhow::Context
provides a convenient way to turnOption<T>
andResult<T, Into<anyhow::Error>>
intoanyhow::Result<T>
Like this:
use anyhow::Context; // to my understanding it's better to // specify the types when their names // are the same as in prelude to improve // readability and reduce name clashing fn main() -> anyhow::Result<()> { let text = "seeds: 79 14 55 13\nwhatever"; let seeds: Vec<u32> = text .lines() .next() .context("No first line!")? // This line has changed .split_whitespace() .skip(1) .map(str::parse) .collect::<Result<_, _>>()?; println!("seeds: {:?}", seeds); Ok(()) }
Edit: line breaks