pub(crate) struct Match {
    expr: String,
    arms: BTreeMap<(Vec<String>, String), BTreeSet<String>>,
    catch_all: Option<String>,
}
Expand description

Match formatting class.

Match objects collect all the information needed to emit a Rust match expression, automatically deduplicating overlapping identical arms.

Note that this class is ignorant of Rust types, and considers two fields with the same name to be equivalent. BTreeMap/BTreeSet are used to represent the arms in order to make the order deterministic.

Fields§

§expr: String§arms: BTreeMap<(Vec<String>, String), BTreeSet<String>>§catch_all: Option<String>

The clause for the placeholder pattern _.

Implementations§

Create a new match statement on expr.

Add an arm that reads fields to the Match statement.

Adds an arm that doesn’t read anythings from the fields to the Match statement.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.