Skip to content

Commit 927f4bc

Browse files
committed
refactor(color-eyre): improve add_frame_filter example and code readability
1 parent e5d92c3 commit 927f4bc

File tree

2 files changed

+17
-29
lines changed

2 files changed

+17
-29
lines changed

color-eyre/examples/custom_filter.rs

+6-10
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,14 @@ fn main() -> Result<(), Report> {
99

1010
color_eyre::config::HookBuilder::default()
1111
.add_frame_filter(Box::new(|frames| {
12-
let filters = &["custom_filter::main"];
12+
let filters = ["custom_filter::main"];
1313

1414
frames.retain(|frame| {
15-
!filters.iter().any(|f| {
16-
let name = if let Some(name) = frame.name.as_ref() {
17-
name.as_str()
18-
} else {
19-
return true;
20-
};
21-
22-
name.starts_with(f)
23-
})
15+
let Some(name) = frame.name.as_deref() else {
16+
return true;
17+
};
18+
19+
!filters.iter().any(|f| name.starts_with(f))
2420
});
2521
}))
2622
.install()

color-eyre/src/config.rs

+11-19
Original file line numberDiff line numberDiff line change
@@ -641,20 +641,16 @@ impl HookBuilder {
641641
/// ```rust
642642
/// color_eyre::config::HookBuilder::default()
643643
/// .add_frame_filter(Box::new(|frames| {
644-
/// let filters = &[
644+
/// let filters = [
645645
/// "uninteresting_function",
646646
/// ];
647647
///
648648
/// frames.retain(|frame| {
649-
/// !filters.iter().any(|f| {
650-
/// let name = if let Some(name) = frame.name.as_ref() {
651-
/// name.as_str()
652-
/// } else {
653-
/// return true;
654-
/// };
649+
/// let Some(name) = frame.name.as_deref() else {
650+
/// return true;
651+
/// };
655652
///
656-
/// name.starts_with(f)
657-
/// })
653+
/// !filters.iter().any(|f| name.starts_with(f))
658654
/// });
659655
/// }))
660656
/// .install()
@@ -768,22 +764,18 @@ fn default_frame_filter(frames: &mut Vec<&Frame>) {
768764
}
769765

770766
fn eyre_frame_filters(frames: &mut Vec<&Frame>) {
771-
let filters = &[
767+
let filters = [
772768
"<color_eyre::Handler as eyre::EyreHandler>::default",
773769
"eyre::",
774770
"color_eyre::",
775771
];
776772

777-
frames.retain(|frame| {
778-
!filters.iter().any(|f| {
779-
let name = if let Some(name) = frame.name.as_ref() {
780-
name.as_str()
781-
} else {
782-
return true;
783-
};
773+
frames.retain(move |frame| {
774+
let Some(name) = frame.name.as_deref() else {
775+
return true;
776+
};
784777

785-
name.starts_with(f)
786-
})
778+
!filters.iter().any(|filter| name.starts_with(filter))
787779
});
788780
}
789781

0 commit comments

Comments
 (0)