pub struct SpecificityScore {
pub literal_chars: usize,
pub placeholder_count: usize,
pub typed_placeholder_count: usize,
}Expand description
Specificity score for a step pattern.
Used to rank patterns when multiple match the same step text. Higher scores indicate more specific patterns that should take precedence.
§Ordering
Patterns are compared by:
- More literal characters → more specific
- Fewer placeholders → more specific
- More typed placeholders → more specific (tiebreaker)
§Examples
use rstest_bdd_patterns::SpecificityScore;
let specific = SpecificityScore::calculate("the output is foo")
.expect("valid specific pattern");
let generic = SpecificityScore::calculate("the output is {value}")
.expect("valid generic pattern");
assert!(specific > generic);Fields§
§literal_chars: usizeTotal number of literal characters in the pattern.
placeholder_count: usizeNumber of placeholder tokens in the pattern.
typed_placeholder_count: usizeNumber of placeholders with type hints (e.g., {n:u32}).
Implementations§
Source§impl SpecificityScore
impl SpecificityScore
Sourcepub fn calculate(pattern: &str) -> Result<Self, PatternError>
pub fn calculate(pattern: &str) -> Result<Self, PatternError>
Calculate the specificity score for a pattern string.
§Errors
Returns PatternError if the pattern contains invalid syntax.
§Examples
use rstest_bdd_patterns::SpecificityScore;
let score = SpecificityScore::calculate("I have {count:u32} apples")
.expect("valid pattern");
assert_eq!(score.literal_chars, 14); // "I have " + " apples"
assert_eq!(score.placeholder_count, 1);
assert_eq!(score.typed_placeholder_count, 1);Trait Implementations§
Source§impl Clone for SpecificityScore
impl Clone for SpecificityScore
Source§fn clone(&self) -> SpecificityScore
fn clone(&self) -> SpecificityScore
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SpecificityScore
impl Debug for SpecificityScore
Source§impl Default for SpecificityScore
impl Default for SpecificityScore
Source§fn default() -> SpecificityScore
fn default() -> SpecificityScore
Returns the “default value” for a type. Read more
Source§impl Ord for SpecificityScore
impl Ord for SpecificityScore
Source§impl PartialEq for SpecificityScore
impl PartialEq for SpecificityScore
Source§impl PartialOrd for SpecificityScore
impl PartialOrd for SpecificityScore
impl Copy for SpecificityScore
impl Eq for SpecificityScore
impl StructuralPartialEq for SpecificityScore
Auto Trait Implementations§
impl Freeze for SpecificityScore
impl RefUnwindSafe for SpecificityScore
impl Send for SpecificityScore
impl Sync for SpecificityScore
impl Unpin for SpecificityScore
impl UnwindSafe for SpecificityScore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more