Add test for optional backtrace

This commit is contained in:
David Tolnay 2019-10-12 16:14:07 -07:00
parent fac0a7aa0d
commit d9ed0fba49
No known key found for this signature in database
GPG key ID: F9BA143B95FF6D82

View file

@ -4,36 +4,98 @@
use std::backtrace::Backtrace;
use thiserror::Error;
#[derive(Error, Debug)]
#[error("...")]
pub struct OptSourceNoBacktraceStruct {
#[source]
source: Option<anyhow::Error>,
}
pub mod structs {
use super::*;
#[derive(Error, Debug)]
#[error("...")]
pub struct OptSourceAlwaysBacktraceStruct {
#[source]
source: Option<anyhow::Error>,
backtrace: Backtrace,
}
#[derive(Error, Debug)]
pub enum OptSourceNoBacktraceEnum {
#[derive(Error, Debug)]
#[error("...")]
Test {
pub struct OptSourceNoBacktrace {
#[source]
source: Option<anyhow::Error>,
},
}
}
#[derive(Error, Debug)]
pub enum OptSourceAlwaysBacktraceEnum {
#[derive(Error, Debug)]
#[error("...")]
Test {
pub struct OptSourceAlwaysBacktrace {
#[source]
source: Option<anyhow::Error>,
backtrace: Backtrace,
},
}
#[derive(Error, Debug)]
#[error("...")]
pub struct NoSourceOptBacktrace {
#[backtrace]
backtrace: Option<Backtrace>,
}
#[derive(Error, Debug)]
#[error("...")]
pub struct AlwaysSourceOptBacktrace {
source: anyhow::Error,
#[backtrace]
backtrace: Option<Backtrace>,
}
#[derive(Error, Debug)]
#[error("...")]
pub struct OptSourceOptBacktrace {
#[source]
source: Option<anyhow::Error>,
#[backtrace]
backtrace: Option<Backtrace>,
}
}
pub mod enums {
use super::*;
#[derive(Error, Debug)]
pub enum OptSourceNoBacktrace {
#[error("...")]
Test {
#[source]
source: Option<anyhow::Error>,
},
}
#[derive(Error, Debug)]
pub enum OptSourceAlwaysBacktrace {
#[error("...")]
Test {
#[source]
source: Option<anyhow::Error>,
backtrace: Backtrace,
},
}
#[derive(Error, Debug)]
pub enum NoSourceOptBacktrace {
#[error("...")]
Test {
#[backtrace]
backtrace: Option<Backtrace>,
},
}
#[derive(Error, Debug)]
pub enum AlwaysSourceOptBacktrace {
#[error("...")]
Test {
source: anyhow::Error,
#[backtrace]
backtrace: Option<Backtrace>,
},
}
#[derive(Error, Debug)]
pub enum OptSourceOptBacktrace {
#[error("...")]
Test {
#[source]
source: Option<anyhow::Error>,
#[backtrace]
backtrace: Option<Backtrace>,
},
}
}