• lad@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    10 months ago

    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 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