Skip to main content

StepPattern

Struct StepPattern 

Source
pub struct StepPattern { /* private fields */ }
Expand description

Pattern text used to match a step at runtime.

Implementations§

Source§

impl StepPattern

Source

pub const fn new(value: &'static str) -> Self

Create a new pattern wrapper from a string literal.

Source

pub const fn as_str(&self) -> &'static str

Access the underlying pattern string.

Source

pub fn compile(&self) -> Result<(), StepPatternError>

Compile the pattern into a regular expression, caching the result.

§Errors

Returns an error if the pattern contains invalid placeholders or the generated regex fails to compile.

§Notes
  • This operation is idempotent. Subsequent calls after a successful compilation are no-ops.
  • This method is thread-safe; concurrent calls may race to build a Regex, but only the first successful value is cached.
Source

pub fn specificity(&self) -> Result<SpecificityScore, StepPatternError>

Calculate and cache the specificity score for this pattern.

Used to rank patterns when multiple match the same step text. Higher scores indicate more specific patterns.

§Errors

Returns StepPatternError if the pattern contains invalid syntax.

§Notes
  • This operation is idempotent. Subsequent calls after a successful calculation are no-ops.
  • This method is thread-safe; concurrent calls may race to compute the score, but only the first successful value is cached.
§Examples
use rstest_bdd::StepPattern;

let specific = StepPattern::from("overlap apples");
let generic = StepPattern::from("overlap {item}");

let specific_score = specific.specificity().expect("specific pattern is valid");
let generic_score = generic.specificity().expect("generic pattern is valid");
assert!(specific_score > generic_score);

Trait Implementations§

Source§

impl Debug for StepPattern

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<&'static str> for StepPattern

Source§

fn from(value: &'static str) -> Self

Converts to this type from the input type.
Source§

impl Hash for StepPattern

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for StepPattern

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for StepPattern

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AnyEq for T
where T: Any + PartialEq,

Source§

fn equals(&self, other: &(dyn Any + 'static)) -> bool

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.