use std::io; use thiserror::Error; #[derive(Error, Debug)] #[error("...")] pub struct ErrorStruct { #[from] source: io::Error, } #[derive(Error, Debug)] #[error("...")] pub struct ErrorStructOptional { #[from] source: Option, } #[derive(Error, Debug)] #[error("...")] pub struct ErrorTuple(#[from] io::Error); #[derive(Error, Debug)] #[error("...")] pub struct ErrorTupleOptional(#[from] Option); #[derive(Error, Debug)] #[error("...")] pub enum ErrorEnum { Test { #[from] source: io::Error, }, } #[derive(Error, Debug)] #[error("...")] pub enum ErrorEnumOptional { Test { #[from] source: Option, }, } #[derive(Error, Debug)] #[error("...")] pub enum Many { Any(#[from] anyhow::Error), Io(#[from] io::Error), } fn assert_impl>() {} #[test] fn test_from() { assert_impl::(); assert_impl::(); assert_impl::(); assert_impl::(); assert_impl::(); assert_impl::(); assert_impl::(); }