Skip to content

Commit 40c878c

Browse files
committed
Implement Debug for Wildcard.
Closes #6.
1 parent cb84d97 commit 40c878c

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

src/lib.rs

+22-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ extern crate alloc;
7777

7878
use alloc::borrow::Cow;
7979
use alloc::vec::Vec;
80-
use core::fmt::Debug;
80+
use core::fmt::{Debug, Display, Formatter};
8181
use core::ops::Range;
8282
use thiserror::Error;
8383

@@ -741,6 +741,19 @@ where
741741
pattern_index >= pattern_len
742742
}
743743

744+
impl<'a, S> Debug for Wildcard<'a, S>
745+
where
746+
S: WildcardSymbol + Display,
747+
{
748+
fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
749+
for s in self.pattern.iter() {
750+
Display::fmt(s, f)?;
751+
}
752+
753+
Ok(())
754+
}
755+
}
756+
744757
#[cfg(test)]
745758
mod tests {
746759
use crate::{Wildcard, WildcardBuilder, WildcardError, WildcardToken};
@@ -1145,6 +1158,14 @@ mod tests {
11451158
assert_eq!(wildcard.captures(&['ω', 'ω', 'Ω', 'Δ']), Some(vec![&['ω', 'Ω'] as &[char]]));
11461159
}
11471160

1161+
#[test]
1162+
fn test_debug_format() {
1163+
let pattern = r"a*\*?\?".chars().collect::<Vec<char>>();
1164+
let wildcard = WildcardBuilder::new(&pattern).build().expect("invalid wildcard");
1165+
1166+
assert_eq!(format!("{wildcard:?}"), r"a*\*?\?");
1167+
}
1168+
11481169
#[derive(Clone, Debug)]
11491170
struct WildcardAndInput {
11501171
pattern: String,

0 commit comments

Comments
 (0)