use std::fmt;
#[derive(Debug)]
enum MyError {
DivisionByZero,
InvalidInput,
}
impl fmt::Display for MyError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
MyError::DivisionByZero => write!(f, "Cannot divide by zero"),
MyError::InvalidInput => write!(f, "Invalid input"),
}
}
}
fn divide(a: i32, b: i32) -> Result<i32, MyError> {
if b == 0 {
Err(MyError::DivisionByZero)
} else {
Ok(a / b)
}
}
fn main() {
let result = divide(10, 0);
match result {
Ok(value) => println!("Result: {}", value),
Err(e) => println!("Error: {}", e),
}
}