Expand description
A vesta, otherwise known as a match case, is a small container for matches, named after the Roman goddess of the hearth.
Vesta is a crate for extensibly matching cases in Rust.
By implementing Match and Case for some type (or better yet, correctly
deriving them using the Match derive macro), you can pattern-match on that type
using the case! macro almost like using the match keyword built into Rust.
However, Vesta’s case! macro is more general than match, because Match and Case
are traits! This means you can enable pattern-matching for types which are not literally
implemented as enums, and you can write code which is generic over any type that is
pattern-matchable.
Macros§
Enums§
- Exhaustive
- A marker type indicating that the
tagfor some type will always be strictly less thanN. - Nonexhaustive
- A marker type indicating that the
tagfor some type is not fixed to some known upper bound.
Traits§
- Case
- An implementation of
Casedefines a particular case of a pattern match for a type.
ℹ️ Prefer using the methods ofCaseExtto directly calling these methods. - CaseExt
- An extension trait providing methods analogous to those in
Case, but which takeselfand type parameters.
💡 Prefer using these to directly calling the methods inCase. - Match
- A type which is
Matchcan be pattern-matched using thecase!macro and the methods ofCaseExt/Case.
Functions§
- assert_
exhaustive - Statically assert that the type of the given value is exhaustive for
N.