Also, anyhow::Context provides a convenient way to turn Option and Result> into anyhow::Result
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 = text
.lines()
.next()
.context("No first line!")? // This line has changed
.split_whitespace()
.skip(1)
.map(str::parse)
.collect::>()?;
println!("seeds: {:?}", seeds);
Ok(())
}
Also,
anyhow::Context
provides a convenient way to turnOption
andResult>
intoanyhow::Result
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 = text .lines() .next() .context("No first line!")? // This line has changed .split_whitespace() .skip(1) .map(str::parse) .collect::>()?; println!("seeds: {:?}", seeds); Ok(()) }
Edit: line breaks