// Created on savesnippets.com · https://savesnippets.com/QTL7saH2CSEFkC use std::net::IpAddr; use std::num::ParseIntError; fn main() -> Result<(), Box> { // Basic let n: i32 = "42".parse()?; println!("{n}"); // Typed via turbofish when inference fails let pi = "3.14".parse::()?; println!("{pi}"); // Booleans let b: bool = "true".parse()?; println!("{b}"); // IPs (stdlib) let ip: IpAddr = "192.168.1.1".parse()?; println!("{ip}"); // Default on parse failure let bad: i32 = "xyz".parse().unwrap_or(-1); println!("{bad}"); // -1 // Result chain — only Ok if every parse succeeded let nums: Result, ParseIntError> = "1 2 3 4 5".split_whitespace().map(str::parse).collect(); println!("{:?}", nums?); // [1, 2, 3, 4, 5] Ok(()) }