mirror of
https://github.com/eyre-rs/eyre.git
synced 2025-09-28 05:21:34 +00:00
Merge branch 'yaahc:master' into cpl/suppress_backtrace
This commit is contained in:
commit
99df70d21f
@ -8,6 +8,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased] - ReleaseDate
|
||||
|
||||
## [0.6.2] - 2022-07-11
|
||||
### Added
|
||||
- Option to disable display of location section in error reports
|
||||
|
||||
## [0.6.1] - 2022-02-24
|
||||
### Changed
|
||||
- Collapsed backtrace help text into fewer lines
|
||||
@ -68,7 +72,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
better compatibility with the Display trait
|
||||
|
||||
<!-- next-url -->
|
||||
[Unreleased]: https://github.com/yaahc/color-eyre/compare/v0.6.1...HEAD
|
||||
[Unreleased]: https://github.com/yaahc/color-eyre/compare/v0.6.2...HEAD
|
||||
[0.6.2]: https://github.com/yaahc/color-eyre/compare/v0.6.1...v0.6.2
|
||||
[0.6.1]: https://github.com/yaahc/color-eyre/compare/v0.6.0...v0.6.1
|
||||
[0.6.0]: https://github.com/yaahc/color-eyre/compare/v0.5.11...v0.6.0
|
||||
[0.5.11]: https://github.com/yaahc/color-eyre/compare/v0.5.10...v0.5.11
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "color-eyre"
|
||||
version = "0.6.1"
|
||||
version = "0.6.2"
|
||||
authors = ["Jane Lusby <jlusby@yaah.dev>"]
|
||||
edition = "2018"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
@ -207,7 +207,9 @@ impl<'a> fmt::Display for StyledFrame<'a> {
|
||||
let name = frame.name.as_deref().unwrap_or("<unknown>");
|
||||
let has_hash_suffix = name.len() > 19
|
||||
&& &name[name.len() - 19..name.len() - 16] == "::h"
|
||||
&& name[name.len() - 16..].chars().all(|x| x.is_digit(16));
|
||||
&& name[name.len() - 16..]
|
||||
.chars()
|
||||
.all(|x| x.is_ascii_hexdigit());
|
||||
|
||||
let hash_suffix = if has_hash_suffix {
|
||||
&name[name.len() - 19..]
|
||||
@ -418,6 +420,8 @@ pub struct HookBuilder {
|
||||
filters: Vec<Box<FilterCallback>>,
|
||||
capture_span_trace_by_default: bool,
|
||||
display_env_section: bool,
|
||||
#[cfg(feature = "track-caller")]
|
||||
display_location_section: bool,
|
||||
panic_section: Option<Box<dyn Display + Send + Sync + 'static>>,
|
||||
panic_message: Option<Box<dyn PanicMessage>>,
|
||||
theme: Theme,
|
||||
@ -459,6 +463,8 @@ impl HookBuilder {
|
||||
filters: vec![],
|
||||
capture_span_trace_by_default: false,
|
||||
display_env_section: true,
|
||||
#[cfg(feature = "track-caller")]
|
||||
display_location_section: true,
|
||||
panic_section: None,
|
||||
panic_message: None,
|
||||
theme: Theme::dark(),
|
||||
@ -649,6 +655,18 @@ impl HookBuilder {
|
||||
self
|
||||
}
|
||||
|
||||
/// Configures the location info section and whether or not it is displayed.
|
||||
///
|
||||
/// # Notes
|
||||
///
|
||||
/// This will not disable the location section in a panic message.
|
||||
#[cfg(feature = "track-caller")]
|
||||
#[cfg_attr(docsrs, doc(cfg(feature = "track-caller")))]
|
||||
pub fn display_location_section(mut self, cond: bool) -> Self {
|
||||
self.display_location_section = cond;
|
||||
self
|
||||
}
|
||||
|
||||
/// Add a custom filter to the set of frame filters
|
||||
///
|
||||
/// # Examples
|
||||
@ -723,6 +741,8 @@ impl HookBuilder {
|
||||
#[cfg(feature = "capture-spantrace")]
|
||||
capture_span_trace_by_default: self.capture_span_trace_by_default,
|
||||
display_env_section: self.display_env_section,
|
||||
#[cfg(feature = "track-caller")]
|
||||
display_location_section: self.display_location_section,
|
||||
theme,
|
||||
#[cfg(feature = "issue-url")]
|
||||
issue_url: self.issue_url,
|
||||
@ -906,7 +926,7 @@ fn print_panic_info(report: &PanicReport<'_>, f: &mut fmt::Formatter<'_>) -> fmt
|
||||
Ok(())
|
||||
}
|
||||
|
||||
impl<'a, 'b> fmt::Display for PanicReport<'a> {
|
||||
impl fmt::Display for PanicReport<'_> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
print_panic_info(self, f)
|
||||
}
|
||||
@ -1000,6 +1020,8 @@ pub struct EyreHook {
|
||||
#[cfg(feature = "capture-spantrace")]
|
||||
capture_span_trace_by_default: bool,
|
||||
display_env_section: bool,
|
||||
#[cfg(feature = "track-caller")]
|
||||
display_location_section: bool,
|
||||
theme: Theme,
|
||||
#[cfg(feature = "issue-url")]
|
||||
issue_url: Option<String>,
|
||||
@ -1035,6 +1057,8 @@ impl EyreHook {
|
||||
span_trace,
|
||||
sections: Vec::new(),
|
||||
display_env_section: self.display_env_section,
|
||||
#[cfg(feature = "track-caller")]
|
||||
display_location_section: self.display_location_section,
|
||||
#[cfg(feature = "issue-url")]
|
||||
issue_url: self.issue_url.clone(),
|
||||
#[cfg(feature = "issue-url")]
|
||||
|
@ -69,14 +69,16 @@ impl eyre::EyreHandler for Handler {
|
||||
let mut separated = f.header("\n\n");
|
||||
|
||||
#[cfg(feature = "track-caller")]
|
||||
write!(
|
||||
separated.ready(),
|
||||
"{}",
|
||||
crate::SectionExt::header(
|
||||
crate::fmt::LocationSection(self.location, self.theme),
|
||||
"Location:"
|
||||
)
|
||||
)?;
|
||||
if self.display_location_section {
|
||||
write!(
|
||||
separated.ready(),
|
||||
"{}",
|
||||
crate::SectionExt::header(
|
||||
crate::fmt::LocationSection(self.location, self.theme),
|
||||
"Location:"
|
||||
)
|
||||
)?;
|
||||
}
|
||||
|
||||
for section in self
|
||||
.sections
|
||||
|
@ -334,7 +334,7 @@
|
||||
//! [`examples/custom_filter.rs`]: https://github.com/yaahc/color-eyre/blob/master/examples/custom_filter.rs
|
||||
//! [`examples/custom_section.rs`]: https://github.com/yaahc/color-eyre/blob/master/examples/custom_section.rs
|
||||
//! [`examples/multiple_errors.rs`]: https://github.com/yaahc/color-eyre/blob/master/examples/multiple_errors.rs
|
||||
#![doc(html_root_url = "https://docs.rs/color-eyre/0.6.1")]
|
||||
#![doc(html_root_url = "https://docs.rs/color-eyre/0.6.2")]
|
||||
#![cfg_attr(docsrs, feature(doc_cfg))]
|
||||
#![warn(
|
||||
missing_docs,
|
||||
@ -405,6 +405,8 @@ pub struct Handler {
|
||||
span_trace: Option<SpanTrace>,
|
||||
sections: Vec<HelpInfo>,
|
||||
display_env_section: bool,
|
||||
#[cfg(feature = "track-caller")]
|
||||
display_location_section: bool,
|
||||
#[cfg(feature = "issue-url")]
|
||||
issue_url: Option<String>,
|
||||
#[cfg(feature = "issue-url")]
|
||||
|
16
tests/location_disabled.rs
Normal file
16
tests/location_disabled.rs
Normal file
@ -0,0 +1,16 @@
|
||||
#[cfg(feature = "track-caller")]
|
||||
#[test]
|
||||
fn disabled() {
|
||||
use color_eyre::eyre;
|
||||
use eyre::eyre;
|
||||
|
||||
color_eyre::config::HookBuilder::default()
|
||||
.display_location_section(false)
|
||||
.install()
|
||||
.unwrap();
|
||||
|
||||
let report = eyre!("error occured");
|
||||
|
||||
let report = format!("{:?}", report);
|
||||
assert!(!report.contains("Location:"));
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user