include!(env!("BINDINGS"));
use test::results::test::*;
struct Component;
export!(Component);
impl Guest for Component {
fn run() {
assert_eq!(string_error(0.0), Err("zero".to_owned()));
assert_eq!(string_error(1.0), Ok(1.0));
assert_eq!(enum_error(0.0), Err(E::A));
assert_eq!(enum_error(1.0), Ok(1.0));
assert!(matches!(
record_error(0.0),
Err(E2 {
line: 420,
column: 0
})
));
assert!(matches!(
record_error(1.0),
Err(E2 {
line: 77,
column: 2
})
));
assert!(record_error(2.0).is_ok());
assert!(matches!(
variant_error(0.0),
Err(E3::E2(E2 {
line: 420,
column: 0
}))
));
assert!(matches!(variant_error(1.0), Err(E3::E1(E::B))));
assert!(matches!(variant_error(2.0), Err(E3::E1(E::C))));
assert_eq!(empty_error(0), Err(()));
assert_eq!(empty_error(1), Ok(42));
assert_eq!(empty_error(2), Ok(2));
assert_eq!(double_error(0), Ok(Ok(())));
assert_eq!(double_error(1), Ok(Err("one".into())));
assert_eq!(double_error(2), Err("two".into()));
}
}