thiserror/tests/test_from.rs

41 lines
700 B
Rust

#![deny(clippy::all, clippy::pedantic)]
use std::io;
use thiserror::Error;
#[derive(Error, Debug)]
#[error("...")]
pub struct ErrorStruct {
#[from]
source: io::Error,
}
#[derive(Error, Debug)]
#[error("...")]
pub struct ErrorTuple(#[from] io::Error);
#[derive(Error, Debug)]
#[error("...")]
pub enum ErrorEnum {
Test {
#[from]
source: io::Error,
},
}
#[derive(Error, Debug)]
#[error("...")]
pub enum Many {
Any(#[from] anyhow::Error),
Io(#[from] io::Error),
}
fn assert_impl<T: From<io::Error>>() {}
#[test]
fn test_from() {
assert_impl::<ErrorStruct>();
assert_impl::<ErrorTuple>();
assert_impl::<ErrorEnum>();
assert_impl::<Many>();
}