use anything::{Anything, Nothing}; pub fn func_1() -> Result<(),Anything> { Err(())?; Ok(()) } pub fn func_2() -> Result<(),Anything> { Err("Hello World")?; Ok(()) } pub fn func_3() -> Result<(),Nothing> { Err("Hello World")?; Ok(()) } fn func_4() -> Anything { let a= std::io::Error::last_os_error(); Anything::from(a) } fn func_5() -> Result<(), Anything> { fn func_5a() -> Result<(), Anything> { fn func_5b() -> Result<(), Anything> { fn func_5c() -> Result<(), Anything> { fn func_5d() -> Result<(), Anything> { Err("Hello World")?; Ok(()) } func_5d()?; Ok(()) } func_5c()?; Ok(()) } func_5b()?; Ok(()) } func_5a()?; Ok(()) } #[test] pub fn test() { println!("func1: {:?}\n", func_1().unwrap_err()); println!("func2: {:?}\n", func_2().unwrap_err()); println!("func3: {:?}\n", func_3().unwrap_err()); println!("func4: {:?}\n", func_4()); println!("func5: {:?}\n", func_5().unwrap_err()); }