📄 ex18.rs
/home/palash/git/misc/rust/rust101/src/bin/ex18.rs
Language: rs • Lines: 22
#[derive(Debug)]
struct Adult {
    name: String,
    age: i32
}

impl Adult  {
    fn new(name: String, age: i32) -> Result<Adult, String> {
        match age {
            1..=18 => Err(format!("Minimum age required is 18, got age {}", age).to_owned()),
            _ => Ok(Adult{name: name, age: age})
        }
    }
}

fn main() {
    let adult = Adult::new("Palash".to_owned(), 33);
    let child = Adult::new("Prapti".to_owned(), 7);

    println!("{:?}", adult);
    println!("{:?}", child)
}