Struct veloren_common::typed::ElimCase
source · pub struct ElimCase<Cases> {
pub cases: Cases,
}
Expand description
A lazy pattern match reified as a Rust type.
expr
is the expression being matched on, generally of some enum type Ty
.
case
represents the pattern match–it will generally be a structure with
one field per constructor in Ty
. The field should contain enough
information to run the match arm for that constructor, given the information
contained in the constructor arguments.
ty
represents the return type of the match expression. It does not carry
any runtime-relevant information, but is needed in order to simplify our
trait definitions.
The intent is that you should not construct this structure directly, nor
should you define or construct the Cases
structure directly. Instead, to
use this you are expected to wrap your enum declaration in a call to
[make_case_elim!], as follows:
veloren_common::make_case_elim!(
my_type_module,
#[repr(u32)]
#[derive(Clone,Copy)]
pub enum MyType {
Constr1 = 0,
#[typed(pure)] Constr2(arg : u8) = 1,
/* ..., */
}
);
This macro automatically does a few things. First, it creates the enum
type MyType
in the current scope, as expected. Second, it creates a
module named my_type_module
in the current scope, into which it dumps a
few things. In this case:
#[repr(u32)]
#[derive(Clone, Copy)]
pub enum MyType {
Constr1 = 0,
Constr2(u8) = 1,
/* ..., */
}
mod my_type_module {
use serde::{Deserialize, Serialize};
/// The number of variants in this enum.
pub const NUM_VARIANTS: usize = 2;
/// An array of all the variant indices (in theory, this can be used by this or other
/// macros in order to easily build up things like uniform random samplers).
pub const ALL_INDICES: [u32; NUM_VARIANTS] = [0, 1];
/// A convenience trait used to store a different type for each constructor in this
/// pattern.
pub trait PackedElim {
type Constr1;
type Constr2;
}
/// The actual *cases.* If you think of pattern match arms as being closures that accept
/// the constructor types as arguments, you can think of this structure as somehow
/// representing just the data *owned* by the closure. This is also what you will
/// generally store in your ron file--it has a field for each constructor of your enum,
/// with the types of all the fields specified by the implementation of [PackedElim] for
/// the [Elim] argument. Each field has the same name as the constructor it represents.
#[derive(Serialize, Deserialize)]
pub struct Cases<Elim: PackedElim> {
pub Constr1: Elim::Constr1,
pub Constr2: Elim::Constr2,
}
/// Finally, because it represents by an overwhelming margin the most common usecase, we
/// predefine a particular pattern matching strategy--"pure"--where every arm holds data of
/// the exact same type, T.
impl<T> PackedElim for veloren_common::typed::Pure<T> {
type Constr1 = T;
type Constr2 = T;
}
/// Because PureCases is so convenient, we have an alias for it. Thus, in order to
/// represent a pattern match on an argument that returns a constant of type (u8,u8,u8) for
/// each arm, you'd use the type `PureCases<(u8, u8, u8)>`.
pub type PureCases<Elim> = Cases<veloren_common::typed::Pure<Elim>>;
}
Finally, a useful implementation of the Typed trait completes this story, providing a way to evaluate this lazy math statement within Rust. Unfortunately, Typed is quite complicated, and this story is still being fully evaluated, so showing teh type may not be that elucidating. Instead, we’ll just present the method you can use most easily to pattern match using the PureCases pattern we mentioned earlier:
pub fn elim_case_pure<’a, Type>(&’a self, cases: &’a $mod::PureCases
If self is expression of your defined enum type, and match data defined by PureCases, this evaluates the pattern match on self and returns the matched case.
To see how this is used in more detail, check out
common/src/body/humanoid.rs
; it is also used extensively in the world
repository.
Limitations:
Unfortunately, due to restrictions on macro_rules, we currently always require the types defined to #[repr(inttype)] as you can see above. There are also some other current limitations that we hopefully will be able to lift at some point; struct variants are not yet supported, and neither attributes on fields.
Fields§
§cases: Cases
Trait Implementations§
source§impl<'de, Cases> Deserialize<'de> for ElimCase<Cases>where
Cases: Deserialize<'de>,
impl<'de, Cases> Deserialize<'de> for ElimCase<Cases>where
Cases: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BlockKind,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Air: Typed<Context, Type, S>,
&'b Elim::Water: Typed<Context, Type, S>,
&'b Elim::Rock: Typed<Context, Type, S>,
&'b Elim::WeakRock: Typed<Context, Type, S>,
&'b Elim::Lava: Typed<Context, Type, S>,
&'b Elim::GlowingRock: Typed<Context, Type, S>,
&'b Elim::GlowingWeakRock: Typed<Context, Type, S>,
&'b Elim::Grass: Typed<Context, Type, S>,
&'b Elim::Snow: Typed<Context, Type, S>,
&'b Elim::ArtSnow: Typed<Context, Type, S>,
&'b Elim::Earth: Typed<Context, Type, S>,
&'b Elim::Sand: Typed<Context, Type, S>,
&'b Elim::Wood: Typed<Context, Type, S>,
&'b Elim::Leaves: Typed<Context, Type, S>,
&'b Elim::GlowingMushroom: Typed<Context, Type, S>,
&'b Elim::Ice: Typed<Context, Type, S>,
&'b Elim::ArtLeaves: Typed<Context, Type, S>,
&'b Elim::Misc: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BlockKind,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Air: Typed<Context, Type, S>,
&'b Elim::Water: Typed<Context, Type, S>,
&'b Elim::Rock: Typed<Context, Type, S>,
&'b Elim::WeakRock: Typed<Context, Type, S>,
&'b Elim::Lava: Typed<Context, Type, S>,
&'b Elim::GlowingRock: Typed<Context, Type, S>,
&'b Elim::GlowingWeakRock: Typed<Context, Type, S>,
&'b Elim::Grass: Typed<Context, Type, S>,
&'b Elim::Snow: Typed<Context, Type, S>,
&'b Elim::ArtSnow: Typed<Context, Type, S>,
&'b Elim::Earth: Typed<Context, Type, S>,
&'b Elim::Sand: Typed<Context, Type, S>,
&'b Elim::Wood: Typed<Context, Type, S>,
&'b Elim::Leaves: Typed<Context, Type, S>,
&'b Elim::GlowingMushroom: Typed<Context, Type, S>,
&'b Elim::Ice: Typed<Context, Type, S>,
&'b Elim::ArtLeaves: Typed<Context, Type, S>,
&'b Elim::Misc: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Tool: Typed<((&'a ToolKind,), Context), Type, S>,
&'b Elim::ModularComponent: Typed<Context, Type, S>,
&'b Elim::Lantern: Typed<Context, Type, S>,
&'b Elim::Glider: Typed<Context, Type, S>,
&'b Elim::Armor: Typed<((&'a ItemDropArmorKind,), Context), Type, S>,
&'b Elim::Utility: Typed<Context, Type, S>,
&'b Elim::Consumable: Typed<Context, Type, S>,
&'b Elim::Throwable: Typed<Context, Type, S>,
&'b Elim::Ingredient: Typed<Context, Type, S>,
&'b Elim::Coins: Typed<Context, Type, S>,
&'b Elim::CoinPouch: Typed<Context, Type, S>,
&'b Elim::Empty: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Tool: Typed<((&'a ToolKind,), Context), Type, S>,
&'b Elim::ModularComponent: Typed<Context, Type, S>,
&'b Elim::Lantern: Typed<Context, Type, S>,
&'b Elim::Glider: Typed<Context, Type, S>,
&'b Elim::Armor: Typed<((&'a ItemDropArmorKind,), Context), Type, S>,
&'b Elim::Utility: Typed<Context, Type, S>,
&'b Elim::Consumable: Typed<Context, Type, S>,
&'b Elim::Throwable: Typed<Context, Type, S>,
&'b Elim::Ingredient: Typed<Context, Type, S>,
&'b Elim::Coins: Typed<Context, Type, S>,
&'b Elim::CoinPouch: Typed<Context, Type, S>,
&'b Elim::Empty: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Humanoid: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::QuadrupedSmall: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::QuadrupedMedium: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BirdMedium: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::FishMedium: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Dragon: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BirdLarge: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::FishSmall: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BipedLarge: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BipedSmall: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Object: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Golem: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Theropod: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::QuadrupedLow: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Ship: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Arthropod: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::ItemDrop: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Crustacean: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Plugin: Typed<((&'a Body,), Context), Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Humanoid: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::QuadrupedSmall: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::QuadrupedMedium: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BirdMedium: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::FishMedium: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Dragon: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BirdLarge: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::FishSmall: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BipedLarge: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::BipedSmall: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Object: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Golem: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Theropod: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::QuadrupedLow: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Ship: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Arthropod: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::ItemDrop: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Crustacean: Typed<((&'a Body,), Context), Type, S>,
&'b Elim::Plugin: Typed<((&'a Body,), Context), Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::DefaultAirship: Typed<Context, Type, S>,
&'b Elim::AirBalloon: Typed<Context, Type, S>,
&'b Elim::SailBoat: Typed<Context, Type, S>,
&'b Elim::Galleon: Typed<Context, Type, S>,
&'b Elim::Volume: Typed<Context, Type, S>,
&'b Elim::Skiff: Typed<Context, Type, S>,
&'b Elim::Submarine: Typed<Context, Type, S>,
&'b Elim::Carriage: Typed<Context, Type, S>,
&'b Elim::Cart: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::DefaultAirship: Typed<Context, Type, S>,
&'b Elim::AirBalloon: Typed<Context, Type, S>,
&'b Elim::SailBoat: Typed<Context, Type, S>,
&'b Elim::Galleon: Typed<Context, Type, S>,
&'b Elim::Volume: Typed<Context, Type, S>,
&'b Elim::Skiff: Typed<Context, Type, S>,
&'b Elim::Submarine: Typed<Context, Type, S>,
&'b Elim::Carriage: Typed<Context, Type, S>,
&'b Elim::Cart: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Arrow: Typed<Context, Type, S>,
&'b Elim::Bomb: Typed<Context, Type, S>,
&'b Elim::Scarecrow: Typed<Context, Type, S>,
&'b Elim::Cauldron: Typed<Context, Type, S>,
&'b Elim::ChestVines: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::ChestDark: Typed<Context, Type, S>,
&'b Elim::ChestDemon: Typed<Context, Type, S>,
&'b Elim::ChestGold: Typed<Context, Type, S>,
&'b Elim::ChestLight: Typed<Context, Type, S>,
&'b Elim::ChestOpen: Typed<Context, Type, S>,
&'b Elim::ChestSkull: Typed<Context, Type, S>,
&'b Elim::Pumpkin: Typed<Context, Type, S>,
&'b Elim::Pumpkin2: Typed<Context, Type, S>,
&'b Elim::Pumpkin3: Typed<Context, Type, S>,
&'b Elim::Pumpkin4: Typed<Context, Type, S>,
&'b Elim::Pumpkin5: Typed<Context, Type, S>,
&'b Elim::Campfire: Typed<Context, Type, S>,
&'b Elim::LanternGround: Typed<Context, Type, S>,
&'b Elim::LanternGroundOpen: Typed<Context, Type, S>,
&'b Elim::LanternStanding2: Typed<Context, Type, S>,
&'b Elim::LanternStanding: Typed<Context, Type, S>,
&'b Elim::PotionBlue: Typed<Context, Type, S>,
&'b Elim::PotionGreen: Typed<Context, Type, S>,
&'b Elim::PotionRed: Typed<Context, Type, S>,
&'b Elim::Crate: Typed<Context, Type, S>,
&'b Elim::Tent: Typed<Context, Type, S>,
&'b Elim::WindowSpooky: Typed<Context, Type, S>,
&'b Elim::DoorSpooky: Typed<Context, Type, S>,
&'b Elim::Anvil: Typed<Context, Type, S>,
&'b Elim::Gravestone: Typed<Context, Type, S>,
&'b Elim::Gravestone2: Typed<Context, Type, S>,
&'b Elim::Bench: Typed<Context, Type, S>,
&'b Elim::Chair: Typed<Context, Type, S>,
&'b Elim::Chair2: Typed<Context, Type, S>,
&'b Elim::Chair3: Typed<Context, Type, S>,
&'b Elim::Table: Typed<Context, Type, S>,
&'b Elim::Table2: Typed<Context, Type, S>,
&'b Elim::Table3: Typed<Context, Type, S>,
&'b Elim::Drawer: Typed<Context, Type, S>,
&'b Elim::BedBlue: Typed<Context, Type, S>,
&'b Elim::Carpet: Typed<Context, Type, S>,
&'b Elim::Bedroll: Typed<Context, Type, S>,
&'b Elim::CarpetHumanRound: Typed<Context, Type, S>,
&'b Elim::CarpetHumanSquare: Typed<Context, Type, S>,
&'b Elim::CarpetHumanSquare2: Typed<Context, Type, S>,
&'b Elim::CarpetHumanSquircle: Typed<Context, Type, S>,
&'b Elim::Pouch: Typed<Context, Type, S>,
&'b Elim::CraftingBench: Typed<Context, Type, S>,
&'b Elim::BoltFire: Typed<Context, Type, S>,
&'b Elim::ArrowSnake: Typed<Context, Type, S>,
&'b Elim::CampfireLit: Typed<Context, Type, S>,
&'b Elim::BoltFireBig: Typed<Context, Type, S>,
&'b Elim::TrainingDummy: Typed<Context, Type, S>,
&'b Elim::FireworkBlue: Typed<Context, Type, S>,
&'b Elim::FireworkGreen: Typed<Context, Type, S>,
&'b Elim::FireworkPurple: Typed<Context, Type, S>,
&'b Elim::FireworkRed: Typed<Context, Type, S>,
&'b Elim::FireworkWhite: Typed<Context, Type, S>,
&'b Elim::FireworkYellow: Typed<Context, Type, S>,
&'b Elim::MultiArrow: Typed<Context, Type, S>,
&'b Elim::BoltNature: Typed<Context, Type, S>,
&'b Elim::ToughMeat: Typed<Context, Type, S>,
&'b Elim::BeastMeat: Typed<Context, Type, S>,
&'b Elim::Crossbow: Typed<Context, Type, S>,
&'b Elim::ArrowTurret: Typed<Context, Type, S>,
&'b Elim::Coins: Typed<Context, Type, S>,
&'b Elim::GoldOre: Typed<Context, Type, S>,
&'b Elim::SilverOre: Typed<Context, Type, S>,
&'b Elim::ClayRocket: Typed<Context, Type, S>,
&'b Elim::HaniwaSentry: Typed<Context, Type, S>,
&'b Elim::SeaLantern: Typed<Context, Type, S>,
&'b Elim::Snowball: Typed<Context, Type, S>,
&'b Elim::BirdMeat: Typed<Context, Type, S>,
&'b Elim::FishMeat: Typed<Context, Type, S>,
&'b Elim::SmallMeat: Typed<Context, Type, S>,
&'b Elim::Tornado: Typed<Context, Type, S>,
&'b Elim::Apple: Typed<Context, Type, S>,
&'b Elim::Hive: Typed<Context, Type, S>,
&'b Elim::Coconut: Typed<Context, Type, S>,
&'b Elim::SpitPoison: Typed<Context, Type, S>,
&'b Elim::BoltIcicle: Typed<Context, Type, S>,
&'b Elim::Dart: Typed<Context, Type, S>,
&'b Elim::GnarlingTotemRed: Typed<Context, Type, S>,
&'b Elim::GnarlingTotemGreen: Typed<Context, Type, S>,
&'b Elim::GnarlingTotemWhite: Typed<Context, Type, S>,
&'b Elim::DagonBomb: Typed<Context, Type, S>,
&'b Elim::BarrelOrgan: Typed<Context, Type, S>,
&'b Elim::IceBomb: Typed<Context, Type, S>,
&'b Elim::SpectralSwordSmall: Typed<Context, Type, S>,
&'b Elim::SpectralSwordLarge: Typed<Context, Type, S>,
&'b Elim::LaserBeam: Typed<Context, Type, S>,
&'b Elim::AdletSpear: Typed<Context, Type, S>,
&'b Elim::AdletTrap: Typed<Context, Type, S>,
&'b Elim::Flamethrower: Typed<Context, Type, S>,
&'b Elim::Mine: Typed<Context, Type, S>,
&'b Elim::LightningBolt: Typed<Context, Type, S>,
&'b Elim::SpearIcicle: Typed<Context, Type, S>,
&'b Elim::Portal: Typed<Context, Type, S>,
&'b Elim::PortalActive: Typed<Context, Type, S>,
&'b Elim::FieryTornado: Typed<Context, Type, S>,
&'b Elim::FireRainDrop: Typed<Context, Type, S>,
&'b Elim::ArrowClay: Typed<Context, Type, S>,
&'b Elim::GrenadeClay: Typed<Context, Type, S>,
&'b Elim::Pebble: Typed<Context, Type, S>,
&'b Elim::LaserBeamSmall: Typed<Context, Type, S>,
&'b Elim::TerracottaStatue: Typed<Context, Type, S>,
&'b Elim::TerracottaDemolisherBomb: Typed<Context, Type, S>,
&'b Elim::BoltBesieger: Typed<Context, Type, S>,
&'b Elim::SurpriseEgg: Typed<Context, Type, S>,
&'b Elim::BubbleBomb: Typed<Context, Type, S>,
&'b Elim::IronPikeBomb: Typed<Context, Type, S>,
&'b Elim::Lavathrower: Typed<Context, Type, S>,
&'b Elim::Scroll: Typed<Context, Type, S>,
&'b Elim::PoisonBall: Typed<Context, Type, S>,
&'b Elim::StrigoiHead: Typed<Context, Type, S>,
&'b Elim::HarlequinDagger: Typed<Context, Type, S>,
&'b Elim::BloodBomb: Typed<Context, Type, S>,
&'b Elim::MinotaurAxe: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Body,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Arrow: Typed<Context, Type, S>,
&'b Elim::Bomb: Typed<Context, Type, S>,
&'b Elim::Scarecrow: Typed<Context, Type, S>,
&'b Elim::Cauldron: Typed<Context, Type, S>,
&'b Elim::ChestVines: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::ChestDark: Typed<Context, Type, S>,
&'b Elim::ChestDemon: Typed<Context, Type, S>,
&'b Elim::ChestGold: Typed<Context, Type, S>,
&'b Elim::ChestLight: Typed<Context, Type, S>,
&'b Elim::ChestOpen: Typed<Context, Type, S>,
&'b Elim::ChestSkull: Typed<Context, Type, S>,
&'b Elim::Pumpkin: Typed<Context, Type, S>,
&'b Elim::Pumpkin2: Typed<Context, Type, S>,
&'b Elim::Pumpkin3: Typed<Context, Type, S>,
&'b Elim::Pumpkin4: Typed<Context, Type, S>,
&'b Elim::Pumpkin5: Typed<Context, Type, S>,
&'b Elim::Campfire: Typed<Context, Type, S>,
&'b Elim::LanternGround: Typed<Context, Type, S>,
&'b Elim::LanternGroundOpen: Typed<Context, Type, S>,
&'b Elim::LanternStanding2: Typed<Context, Type, S>,
&'b Elim::LanternStanding: Typed<Context, Type, S>,
&'b Elim::PotionBlue: Typed<Context, Type, S>,
&'b Elim::PotionGreen: Typed<Context, Type, S>,
&'b Elim::PotionRed: Typed<Context, Type, S>,
&'b Elim::Crate: Typed<Context, Type, S>,
&'b Elim::Tent: Typed<Context, Type, S>,
&'b Elim::WindowSpooky: Typed<Context, Type, S>,
&'b Elim::DoorSpooky: Typed<Context, Type, S>,
&'b Elim::Anvil: Typed<Context, Type, S>,
&'b Elim::Gravestone: Typed<Context, Type, S>,
&'b Elim::Gravestone2: Typed<Context, Type, S>,
&'b Elim::Bench: Typed<Context, Type, S>,
&'b Elim::Chair: Typed<Context, Type, S>,
&'b Elim::Chair2: Typed<Context, Type, S>,
&'b Elim::Chair3: Typed<Context, Type, S>,
&'b Elim::Table: Typed<Context, Type, S>,
&'b Elim::Table2: Typed<Context, Type, S>,
&'b Elim::Table3: Typed<Context, Type, S>,
&'b Elim::Drawer: Typed<Context, Type, S>,
&'b Elim::BedBlue: Typed<Context, Type, S>,
&'b Elim::Carpet: Typed<Context, Type, S>,
&'b Elim::Bedroll: Typed<Context, Type, S>,
&'b Elim::CarpetHumanRound: Typed<Context, Type, S>,
&'b Elim::CarpetHumanSquare: Typed<Context, Type, S>,
&'b Elim::CarpetHumanSquare2: Typed<Context, Type, S>,
&'b Elim::CarpetHumanSquircle: Typed<Context, Type, S>,
&'b Elim::Pouch: Typed<Context, Type, S>,
&'b Elim::CraftingBench: Typed<Context, Type, S>,
&'b Elim::BoltFire: Typed<Context, Type, S>,
&'b Elim::ArrowSnake: Typed<Context, Type, S>,
&'b Elim::CampfireLit: Typed<Context, Type, S>,
&'b Elim::BoltFireBig: Typed<Context, Type, S>,
&'b Elim::TrainingDummy: Typed<Context, Type, S>,
&'b Elim::FireworkBlue: Typed<Context, Type, S>,
&'b Elim::FireworkGreen: Typed<Context, Type, S>,
&'b Elim::FireworkPurple: Typed<Context, Type, S>,
&'b Elim::FireworkRed: Typed<Context, Type, S>,
&'b Elim::FireworkWhite: Typed<Context, Type, S>,
&'b Elim::FireworkYellow: Typed<Context, Type, S>,
&'b Elim::MultiArrow: Typed<Context, Type, S>,
&'b Elim::BoltNature: Typed<Context, Type, S>,
&'b Elim::ToughMeat: Typed<Context, Type, S>,
&'b Elim::BeastMeat: Typed<Context, Type, S>,
&'b Elim::Crossbow: Typed<Context, Type, S>,
&'b Elim::ArrowTurret: Typed<Context, Type, S>,
&'b Elim::Coins: Typed<Context, Type, S>,
&'b Elim::GoldOre: Typed<Context, Type, S>,
&'b Elim::SilverOre: Typed<Context, Type, S>,
&'b Elim::ClayRocket: Typed<Context, Type, S>,
&'b Elim::HaniwaSentry: Typed<Context, Type, S>,
&'b Elim::SeaLantern: Typed<Context, Type, S>,
&'b Elim::Snowball: Typed<Context, Type, S>,
&'b Elim::BirdMeat: Typed<Context, Type, S>,
&'b Elim::FishMeat: Typed<Context, Type, S>,
&'b Elim::SmallMeat: Typed<Context, Type, S>,
&'b Elim::Tornado: Typed<Context, Type, S>,
&'b Elim::Apple: Typed<Context, Type, S>,
&'b Elim::Hive: Typed<Context, Type, S>,
&'b Elim::Coconut: Typed<Context, Type, S>,
&'b Elim::SpitPoison: Typed<Context, Type, S>,
&'b Elim::BoltIcicle: Typed<Context, Type, S>,
&'b Elim::Dart: Typed<Context, Type, S>,
&'b Elim::GnarlingTotemRed: Typed<Context, Type, S>,
&'b Elim::GnarlingTotemGreen: Typed<Context, Type, S>,
&'b Elim::GnarlingTotemWhite: Typed<Context, Type, S>,
&'b Elim::DagonBomb: Typed<Context, Type, S>,
&'b Elim::BarrelOrgan: Typed<Context, Type, S>,
&'b Elim::IceBomb: Typed<Context, Type, S>,
&'b Elim::SpectralSwordSmall: Typed<Context, Type, S>,
&'b Elim::SpectralSwordLarge: Typed<Context, Type, S>,
&'b Elim::LaserBeam: Typed<Context, Type, S>,
&'b Elim::AdletSpear: Typed<Context, Type, S>,
&'b Elim::AdletTrap: Typed<Context, Type, S>,
&'b Elim::Flamethrower: Typed<Context, Type, S>,
&'b Elim::Mine: Typed<Context, Type, S>,
&'b Elim::LightningBolt: Typed<Context, Type, S>,
&'b Elim::SpearIcicle: Typed<Context, Type, S>,
&'b Elim::Portal: Typed<Context, Type, S>,
&'b Elim::PortalActive: Typed<Context, Type, S>,
&'b Elim::FieryTornado: Typed<Context, Type, S>,
&'b Elim::FireRainDrop: Typed<Context, Type, S>,
&'b Elim::ArrowClay: Typed<Context, Type, S>,
&'b Elim::GrenadeClay: Typed<Context, Type, S>,
&'b Elim::Pebble: Typed<Context, Type, S>,
&'b Elim::LaserBeamSmall: Typed<Context, Type, S>,
&'b Elim::TerracottaStatue: Typed<Context, Type, S>,
&'b Elim::TerracottaDemolisherBomb: Typed<Context, Type, S>,
&'b Elim::BoltBesieger: Typed<Context, Type, S>,
&'b Elim::SurpriseEgg: Typed<Context, Type, S>,
&'b Elim::BubbleBomb: Typed<Context, Type, S>,
&'b Elim::IronPikeBomb: Typed<Context, Type, S>,
&'b Elim::Lavathrower: Typed<Context, Type, S>,
&'b Elim::Scroll: Typed<Context, Type, S>,
&'b Elim::PoisonBall: Typed<Context, Type, S>,
&'b Elim::StrigoiHead: Typed<Context, Type, S>,
&'b Elim::HarlequinDagger: Typed<Context, Type, S>,
&'b Elim::BloodBomb: Typed<Context, Type, S>,
&'b Elim::MinotaurAxe: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a BodyType,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Category,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Void: Typed<Context, Type, S>,
&'b Elim::Misc: Typed<Context, Type, S>,
&'b Elim::Furniture: Typed<Context, Type, S>,
&'b Elim::Plant: Typed<Context, Type, S>,
&'b Elim::Resource: Typed<Context, Type, S>,
&'b Elim::MineableResource: Typed<Context, Type, S>,
&'b Elim::Structural: Typed<Context, Type, S>,
&'b Elim::Decor: Typed<Context, Type, S>,
&'b Elim::Lamp: Typed<Context, Type, S>,
&'b Elim::Container: Typed<Context, Type, S>,
&'b Elim::Modular: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Category,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Void: Typed<Context, Type, S>,
&'b Elim::Misc: Typed<Context, Type, S>,
&'b Elim::Furniture: Typed<Context, Type, S>,
&'b Elim::Plant: Typed<Context, Type, S>,
&'b Elim::Resource: Typed<Context, Type, S>,
&'b Elim::MineableResource: Typed<Context, Type, S>,
&'b Elim::Structural: Typed<Context, Type, S>,
&'b Elim::Decor: Typed<Context, Type, S>,
&'b Elim::Lamp: Typed<Context, Type, S>,
&'b Elim::Container: Typed<Context, Type, S>,
&'b Elim::Modular: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a EyeColor,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::AmberOrange: Typed<Context, Type, S>,
&'b Elim::AmberYellow: Typed<Context, Type, S>,
&'b Elim::BrightBrown: Typed<Context, Type, S>,
&'b Elim::CornflowerBlue: Typed<Context, Type, S>,
&'b Elim::CuriousGreen: Typed<Context, Type, S>,
&'b Elim::EmeraldGreen: Typed<Context, Type, S>,
&'b Elim::ExoticPurple: Typed<Context, Type, S>,
&'b Elim::FrozenBlue: Typed<Context, Type, S>,
&'b Elim::GhastlyYellow: Typed<Context, Type, S>,
&'b Elim::LoyalBrown: Typed<Context, Type, S>,
&'b Elim::MagicPurple: Typed<Context, Type, S>,
&'b Elim::NobleBlue: Typed<Context, Type, S>,
&'b Elim::PineGreen: Typed<Context, Type, S>,
&'b Elim::PumpkinOrange: Typed<Context, Type, S>,
&'b Elim::RubyRed: Typed<Context, Type, S>,
&'b Elim::RegalPurple: Typed<Context, Type, S>,
&'b Elim::RustBrown: Typed<Context, Type, S>,
&'b Elim::SapphireBlue: Typed<Context, Type, S>,
&'b Elim::SulfurYellow: Typed<Context, Type, S>,
&'b Elim::ToxicGreen: Typed<Context, Type, S>,
&'b Elim::ViciousRed: Typed<Context, Type, S>,
&'b Elim::VigorousBlack: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a EyeColor,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::AmberOrange: Typed<Context, Type, S>,
&'b Elim::AmberYellow: Typed<Context, Type, S>,
&'b Elim::BrightBrown: Typed<Context, Type, S>,
&'b Elim::CornflowerBlue: Typed<Context, Type, S>,
&'b Elim::CuriousGreen: Typed<Context, Type, S>,
&'b Elim::EmeraldGreen: Typed<Context, Type, S>,
&'b Elim::ExoticPurple: Typed<Context, Type, S>,
&'b Elim::FrozenBlue: Typed<Context, Type, S>,
&'b Elim::GhastlyYellow: Typed<Context, Type, S>,
&'b Elim::LoyalBrown: Typed<Context, Type, S>,
&'b Elim::MagicPurple: Typed<Context, Type, S>,
&'b Elim::NobleBlue: Typed<Context, Type, S>,
&'b Elim::PineGreen: Typed<Context, Type, S>,
&'b Elim::PumpkinOrange: Typed<Context, Type, S>,
&'b Elim::RubyRed: Typed<Context, Type, S>,
&'b Elim::RegalPurple: Typed<Context, Type, S>,
&'b Elim::RustBrown: Typed<Context, Type, S>,
&'b Elim::SapphireBlue: Typed<Context, Type, S>,
&'b Elim::SulfurYellow: Typed<Context, Type, S>,
&'b Elim::ToxicGreen: Typed<Context, Type, S>,
&'b Elim::ViciousRed: Typed<Context, Type, S>,
&'b Elim::VigorousBlack: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a ItemDropArmorKind,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Shoulder: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::Belt: Typed<Context, Type, S>,
&'b Elim::Hand: Typed<Context, Type, S>,
&'b Elim::Pants: Typed<Context, Type, S>,
&'b Elim::Foot: Typed<Context, Type, S>,
&'b Elim::Back: Typed<Context, Type, S>,
&'b Elim::Ring: Typed<Context, Type, S>,
&'b Elim::Neck: Typed<Context, Type, S>,
&'b Elim::Head: Typed<Context, Type, S>,
&'b Elim::Tabard: Typed<Context, Type, S>,
&'b Elim::Bag: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a ItemDropArmorKind,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Shoulder: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::Belt: Typed<Context, Type, S>,
&'b Elim::Hand: Typed<Context, Type, S>,
&'b Elim::Pants: Typed<Context, Type, S>,
&'b Elim::Foot: Typed<Context, Type, S>,
&'b Elim::Back: Typed<Context, Type, S>,
&'b Elim::Ring: Typed<Context, Type, S>,
&'b Elim::Neck: Typed<Context, Type, S>,
&'b Elim::Head: Typed<Context, Type, S>,
&'b Elim::Tabard: Typed<Context, Type, S>,
&'b Elim::Bag: Typed<Context, Type, S>,
fn reduce( self, ((head), context): ((&'a ItemDropArmorKind,), Context), ) -> (Type, S)
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Skin,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::HumanOne: Typed<Context, Type, S>,
&'b Elim::HumanTwo: Typed<Context, Type, S>,
&'b Elim::HumanThree: Typed<Context, Type, S>,
&'b Elim::HumanFour: Typed<Context, Type, S>,
&'b Elim::HumanFive: Typed<Context, Type, S>,
&'b Elim::HumanSix: Typed<Context, Type, S>,
&'b Elim::HumanSeven: Typed<Context, Type, S>,
&'b Elim::HumanEight: Typed<Context, Type, S>,
&'b Elim::HumanNine: Typed<Context, Type, S>,
&'b Elim::HumanTen: Typed<Context, Type, S>,
&'b Elim::HumanEleven: Typed<Context, Type, S>,
&'b Elim::HumanTwelve: Typed<Context, Type, S>,
&'b Elim::HumanThirteen: Typed<Context, Type, S>,
&'b Elim::HumanFourteen: Typed<Context, Type, S>,
&'b Elim::HumanFifteen: Typed<Context, Type, S>,
&'b Elim::HumanSixteen: Typed<Context, Type, S>,
&'b Elim::HumanSeventeen: Typed<Context, Type, S>,
&'b Elim::HumanEighteen: Typed<Context, Type, S>,
&'b Elim::DwarfOne: Typed<Context, Type, S>,
&'b Elim::DwarfTwo: Typed<Context, Type, S>,
&'b Elim::DwarfThree: Typed<Context, Type, S>,
&'b Elim::DwarfFour: Typed<Context, Type, S>,
&'b Elim::DwarfFive: Typed<Context, Type, S>,
&'b Elim::DwarfSix: Typed<Context, Type, S>,
&'b Elim::DwarfSeven: Typed<Context, Type, S>,
&'b Elim::DwarfEight: Typed<Context, Type, S>,
&'b Elim::DwarfNine: Typed<Context, Type, S>,
&'b Elim::DwarfTen: Typed<Context, Type, S>,
&'b Elim::DwarfEleven: Typed<Context, Type, S>,
&'b Elim::DwarfTwelve: Typed<Context, Type, S>,
&'b Elim::DwarfThirteen: Typed<Context, Type, S>,
&'b Elim::DwarfFourteen: Typed<Context, Type, S>,
&'b Elim::ElfOne: Typed<Context, Type, S>,
&'b Elim::ElfTwo: Typed<Context, Type, S>,
&'b Elim::ElfThree: Typed<Context, Type, S>,
&'b Elim::ElfFour: Typed<Context, Type, S>,
&'b Elim::ElfFive: Typed<Context, Type, S>,
&'b Elim::ElfSix: Typed<Context, Type, S>,
&'b Elim::ElfSeven: Typed<Context, Type, S>,
&'b Elim::ElfEight: Typed<Context, Type, S>,
&'b Elim::ElfNine: Typed<Context, Type, S>,
&'b Elim::ElfTen: Typed<Context, Type, S>,
&'b Elim::ElfEleven: Typed<Context, Type, S>,
&'b Elim::ElfTwelve: Typed<Context, Type, S>,
&'b Elim::ElfThirteen: Typed<Context, Type, S>,
&'b Elim::ElfFourteen: Typed<Context, Type, S>,
&'b Elim::ElfFifteen: Typed<Context, Type, S>,
&'b Elim::ElfSixteen: Typed<Context, Type, S>,
&'b Elim::ElfSeventeen: Typed<Context, Type, S>,
&'b Elim::ElfEighteen: Typed<Context, Type, S>,
&'b Elim::OrcOne: Typed<Context, Type, S>,
&'b Elim::OrcTwo: Typed<Context, Type, S>,
&'b Elim::OrcThree: Typed<Context, Type, S>,
&'b Elim::OrcFour: Typed<Context, Type, S>,
&'b Elim::OrcFive: Typed<Context, Type, S>,
&'b Elim::OrcSix: Typed<Context, Type, S>,
&'b Elim::OrcSeven: Typed<Context, Type, S>,
&'b Elim::OrcEight: Typed<Context, Type, S>,
&'b Elim::DanariOne: Typed<Context, Type, S>,
&'b Elim::DanariTwo: Typed<Context, Type, S>,
&'b Elim::DanariThree: Typed<Context, Type, S>,
&'b Elim::DanariFour: Typed<Context, Type, S>,
&'b Elim::DanariFive: Typed<Context, Type, S>,
&'b Elim::DanariSix: Typed<Context, Type, S>,
&'b Elim::DanariSeven: Typed<Context, Type, S>,
&'b Elim::DraugrOne: Typed<Context, Type, S>,
&'b Elim::DraugrTwo: Typed<Context, Type, S>,
&'b Elim::DraugrThree: Typed<Context, Type, S>,
&'b Elim::DraugrFour: Typed<Context, Type, S>,
&'b Elim::DraugrFive: Typed<Context, Type, S>,
&'b Elim::DraugrSix: Typed<Context, Type, S>,
&'b Elim::DraugrSeven: Typed<Context, Type, S>,
&'b Elim::DraugrEight: Typed<Context, Type, S>,
&'b Elim::DraugrNine: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Skin,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::HumanOne: Typed<Context, Type, S>,
&'b Elim::HumanTwo: Typed<Context, Type, S>,
&'b Elim::HumanThree: Typed<Context, Type, S>,
&'b Elim::HumanFour: Typed<Context, Type, S>,
&'b Elim::HumanFive: Typed<Context, Type, S>,
&'b Elim::HumanSix: Typed<Context, Type, S>,
&'b Elim::HumanSeven: Typed<Context, Type, S>,
&'b Elim::HumanEight: Typed<Context, Type, S>,
&'b Elim::HumanNine: Typed<Context, Type, S>,
&'b Elim::HumanTen: Typed<Context, Type, S>,
&'b Elim::HumanEleven: Typed<Context, Type, S>,
&'b Elim::HumanTwelve: Typed<Context, Type, S>,
&'b Elim::HumanThirteen: Typed<Context, Type, S>,
&'b Elim::HumanFourteen: Typed<Context, Type, S>,
&'b Elim::HumanFifteen: Typed<Context, Type, S>,
&'b Elim::HumanSixteen: Typed<Context, Type, S>,
&'b Elim::HumanSeventeen: Typed<Context, Type, S>,
&'b Elim::HumanEighteen: Typed<Context, Type, S>,
&'b Elim::DwarfOne: Typed<Context, Type, S>,
&'b Elim::DwarfTwo: Typed<Context, Type, S>,
&'b Elim::DwarfThree: Typed<Context, Type, S>,
&'b Elim::DwarfFour: Typed<Context, Type, S>,
&'b Elim::DwarfFive: Typed<Context, Type, S>,
&'b Elim::DwarfSix: Typed<Context, Type, S>,
&'b Elim::DwarfSeven: Typed<Context, Type, S>,
&'b Elim::DwarfEight: Typed<Context, Type, S>,
&'b Elim::DwarfNine: Typed<Context, Type, S>,
&'b Elim::DwarfTen: Typed<Context, Type, S>,
&'b Elim::DwarfEleven: Typed<Context, Type, S>,
&'b Elim::DwarfTwelve: Typed<Context, Type, S>,
&'b Elim::DwarfThirteen: Typed<Context, Type, S>,
&'b Elim::DwarfFourteen: Typed<Context, Type, S>,
&'b Elim::ElfOne: Typed<Context, Type, S>,
&'b Elim::ElfTwo: Typed<Context, Type, S>,
&'b Elim::ElfThree: Typed<Context, Type, S>,
&'b Elim::ElfFour: Typed<Context, Type, S>,
&'b Elim::ElfFive: Typed<Context, Type, S>,
&'b Elim::ElfSix: Typed<Context, Type, S>,
&'b Elim::ElfSeven: Typed<Context, Type, S>,
&'b Elim::ElfEight: Typed<Context, Type, S>,
&'b Elim::ElfNine: Typed<Context, Type, S>,
&'b Elim::ElfTen: Typed<Context, Type, S>,
&'b Elim::ElfEleven: Typed<Context, Type, S>,
&'b Elim::ElfTwelve: Typed<Context, Type, S>,
&'b Elim::ElfThirteen: Typed<Context, Type, S>,
&'b Elim::ElfFourteen: Typed<Context, Type, S>,
&'b Elim::ElfFifteen: Typed<Context, Type, S>,
&'b Elim::ElfSixteen: Typed<Context, Type, S>,
&'b Elim::ElfSeventeen: Typed<Context, Type, S>,
&'b Elim::ElfEighteen: Typed<Context, Type, S>,
&'b Elim::OrcOne: Typed<Context, Type, S>,
&'b Elim::OrcTwo: Typed<Context, Type, S>,
&'b Elim::OrcThree: Typed<Context, Type, S>,
&'b Elim::OrcFour: Typed<Context, Type, S>,
&'b Elim::OrcFive: Typed<Context, Type, S>,
&'b Elim::OrcSix: Typed<Context, Type, S>,
&'b Elim::OrcSeven: Typed<Context, Type, S>,
&'b Elim::OrcEight: Typed<Context, Type, S>,
&'b Elim::DanariOne: Typed<Context, Type, S>,
&'b Elim::DanariTwo: Typed<Context, Type, S>,
&'b Elim::DanariThree: Typed<Context, Type, S>,
&'b Elim::DanariFour: Typed<Context, Type, S>,
&'b Elim::DanariFive: Typed<Context, Type, S>,
&'b Elim::DanariSix: Typed<Context, Type, S>,
&'b Elim::DanariSeven: Typed<Context, Type, S>,
&'b Elim::DraugrOne: Typed<Context, Type, S>,
&'b Elim::DraugrTwo: Typed<Context, Type, S>,
&'b Elim::DraugrThree: Typed<Context, Type, S>,
&'b Elim::DraugrFour: Typed<Context, Type, S>,
&'b Elim::DraugrFive: Typed<Context, Type, S>,
&'b Elim::DraugrSix: Typed<Context, Type, S>,
&'b Elim::DraugrSeven: Typed<Context, Type, S>,
&'b Elim::DraugrEight: Typed<Context, Type, S>,
&'b Elim::DraugrNine: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Gnome: Typed<Context, Type, S>,
&'b Elim::Sahagin: Typed<Context, Type, S>,
&'b Elim::Adlet: Typed<Context, Type, S>,
&'b Elim::Gnarling: Typed<Context, Type, S>,
&'b Elim::Mandragora: Typed<Context, Type, S>,
&'b Elim::Kappa: Typed<Context, Type, S>,
&'b Elim::Cactid: Typed<Context, Type, S>,
&'b Elim::Gnoll: Typed<Context, Type, S>,
&'b Elim::Haniwa: Typed<Context, Type, S>,
&'b Elim::Myrmidon: Typed<Context, Type, S>,
&'b Elim::Husk: Typed<Context, Type, S>,
&'b Elim::Boreal: Typed<Context, Type, S>,
&'b Elim::Bushly: Typed<Context, Type, S>,
&'b Elim::Irrwurz: Typed<Context, Type, S>,
&'b Elim::IronDwarf: Typed<Context, Type, S>,
&'b Elim::Flamekeeper: Typed<Context, Type, S>,
&'b Elim::ShamanicSpirit: Typed<Context, Type, S>,
&'b Elim::Jiangshi: Typed<Context, Type, S>,
&'b Elim::TreasureEgg: Typed<Context, Type, S>,
&'b Elim::GnarlingChieftain: Typed<Context, Type, S>,
&'b Elim::BloodmoonHeiress: Typed<Context, Type, S>,
&'b Elim::Bloodservant: Typed<Context, Type, S>,
&'b Elim::Harlequin: Typed<Context, Type, S>,
&'b Elim::GoblinThug: Typed<Context, Type, S>,
&'b Elim::GoblinChucker: Typed<Context, Type, S>,
&'b Elim::GoblinRuffian: Typed<Context, Type, S>,
&'b Elim::GreenLegoom: Typed<Context, Type, S>,
&'b Elim::OchreLegoom: Typed<Context, Type, S>,
&'b Elim::PurpleLegoom: Typed<Context, Type, S>,
&'b Elim::RedLegoom: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Gnome: Typed<Context, Type, S>,
&'b Elim::Sahagin: Typed<Context, Type, S>,
&'b Elim::Adlet: Typed<Context, Type, S>,
&'b Elim::Gnarling: Typed<Context, Type, S>,
&'b Elim::Mandragora: Typed<Context, Type, S>,
&'b Elim::Kappa: Typed<Context, Type, S>,
&'b Elim::Cactid: Typed<Context, Type, S>,
&'b Elim::Gnoll: Typed<Context, Type, S>,
&'b Elim::Haniwa: Typed<Context, Type, S>,
&'b Elim::Myrmidon: Typed<Context, Type, S>,
&'b Elim::Husk: Typed<Context, Type, S>,
&'b Elim::Boreal: Typed<Context, Type, S>,
&'b Elim::Bushly: Typed<Context, Type, S>,
&'b Elim::Irrwurz: Typed<Context, Type, S>,
&'b Elim::IronDwarf: Typed<Context, Type, S>,
&'b Elim::Flamekeeper: Typed<Context, Type, S>,
&'b Elim::ShamanicSpirit: Typed<Context, Type, S>,
&'b Elim::Jiangshi: Typed<Context, Type, S>,
&'b Elim::TreasureEgg: Typed<Context, Type, S>,
&'b Elim::GnarlingChieftain: Typed<Context, Type, S>,
&'b Elim::BloodmoonHeiress: Typed<Context, Type, S>,
&'b Elim::Bloodservant: Typed<Context, Type, S>,
&'b Elim::Harlequin: Typed<Context, Type, S>,
&'b Elim::GoblinThug: Typed<Context, Type, S>,
&'b Elim::GoblinChucker: Typed<Context, Type, S>,
&'b Elim::GoblinRuffian: Typed<Context, Type, S>,
&'b Elim::GreenLegoom: Typed<Context, Type, S>,
&'b Elim::OchreLegoom: Typed<Context, Type, S>,
&'b Elim::PurpleLegoom: Typed<Context, Type, S>,
&'b Elim::RedLegoom: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::StoneGolem: Typed<Context, Type, S>,
&'b Elim::Treant: Typed<Context, Type, S>,
&'b Elim::ClayGolem: Typed<Context, Type, S>,
&'b Elim::WoodGolem: Typed<Context, Type, S>,
&'b Elim::CoralGolem: Typed<Context, Type, S>,
&'b Elim::Gravewarden: Typed<Context, Type, S>,
&'b Elim::AncientEffigy: Typed<Context, Type, S>,
&'b Elim::Mogwai: Typed<Context, Type, S>,
&'b Elim::IronGolem: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::StoneGolem: Typed<Context, Type, S>,
&'b Elim::Treant: Typed<Context, Type, S>,
&'b Elim::ClayGolem: Typed<Context, Type, S>,
&'b Elim::WoodGolem: Typed<Context, Type, S>,
&'b Elim::CoralGolem: Typed<Context, Type, S>,
&'b Elim::Gravewarden: Typed<Context, Type, S>,
&'b Elim::AncientEffigy: Typed<Context, Type, S>,
&'b Elim::Mogwai: Typed<Context, Type, S>,
&'b Elim::IronGolem: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Phoenix: Typed<Context, Type, S>,
&'b Elim::Cockatrice: Typed<Context, Type, S>,
&'b Elim::Roc: Typed<Context, Type, S>,
&'b Elim::FlameWyvern: Typed<Context, Type, S>,
&'b Elim::CloudWyvern: Typed<Context, Type, S>,
&'b Elim::FrostWyvern: Typed<Context, Type, S>,
&'b Elim::SeaWyvern: Typed<Context, Type, S>,
&'b Elim::WealdWyvern: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Phoenix: Typed<Context, Type, S>,
&'b Elim::Cockatrice: Typed<Context, Type, S>,
&'b Elim::Roc: Typed<Context, Type, S>,
&'b Elim::FlameWyvern: Typed<Context, Type, S>,
&'b Elim::CloudWyvern: Typed<Context, Type, S>,
&'b Elim::FrostWyvern: Typed<Context, Type, S>,
&'b Elim::SeaWyvern: Typed<Context, Type, S>,
&'b Elim::WealdWyvern: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Crocodile: Typed<Context, Type, S>,
&'b Elim::Alligator: Typed<Context, Type, S>,
&'b Elim::Salamander: Typed<Context, Type, S>,
&'b Elim::Monitor: Typed<Context, Type, S>,
&'b Elim::Asp: Typed<Context, Type, S>,
&'b Elim::Tortoise: Typed<Context, Type, S>,
&'b Elim::Pangolin: Typed<Context, Type, S>,
&'b Elim::Maneater: Typed<Context, Type, S>,
&'b Elim::Sandshark: Typed<Context, Type, S>,
&'b Elim::Hakulaq: Typed<Context, Type, S>,
&'b Elim::Lavadrake: Typed<Context, Type, S>,
&'b Elim::Basilisk: Typed<Context, Type, S>,
&'b Elim::Deadwood: Typed<Context, Type, S>,
&'b Elim::Icedrake: Typed<Context, Type, S>,
&'b Elim::SeaCrocodile: Typed<Context, Type, S>,
&'b Elim::Dagon: Typed<Context, Type, S>,
&'b Elim::Rocksnapper: Typed<Context, Type, S>,
&'b Elim::Rootsnapper: Typed<Context, Type, S>,
&'b Elim::Reefsnapper: Typed<Context, Type, S>,
&'b Elim::Elbst: Typed<Context, Type, S>,
&'b Elim::Mossdrake: Typed<Context, Type, S>,
&'b Elim::Driggle: Typed<Context, Type, S>,
&'b Elim::Snaretongue: Typed<Context, Type, S>,
&'b Elim::Hydra: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Crocodile: Typed<Context, Type, S>,
&'b Elim::Alligator: Typed<Context, Type, S>,
&'b Elim::Salamander: Typed<Context, Type, S>,
&'b Elim::Monitor: Typed<Context, Type, S>,
&'b Elim::Asp: Typed<Context, Type, S>,
&'b Elim::Tortoise: Typed<Context, Type, S>,
&'b Elim::Pangolin: Typed<Context, Type, S>,
&'b Elim::Maneater: Typed<Context, Type, S>,
&'b Elim::Sandshark: Typed<Context, Type, S>,
&'b Elim::Hakulaq: Typed<Context, Type, S>,
&'b Elim::Lavadrake: Typed<Context, Type, S>,
&'b Elim::Basilisk: Typed<Context, Type, S>,
&'b Elim::Deadwood: Typed<Context, Type, S>,
&'b Elim::Icedrake: Typed<Context, Type, S>,
&'b Elim::SeaCrocodile: Typed<Context, Type, S>,
&'b Elim::Dagon: Typed<Context, Type, S>,
&'b Elim::Rocksnapper: Typed<Context, Type, S>,
&'b Elim::Rootsnapper: Typed<Context, Type, S>,
&'b Elim::Reefsnapper: Typed<Context, Type, S>,
&'b Elim::Elbst: Typed<Context, Type, S>,
&'b Elim::Mossdrake: Typed<Context, Type, S>,
&'b Elim::Driggle: Typed<Context, Type, S>,
&'b Elim::Snaretongue: Typed<Context, Type, S>,
&'b Elim::Hydra: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::SnowyOwl: Typed<Context, Type, S>,
&'b Elim::HornedOwl: Typed<Context, Type, S>,
&'b Elim::Duck: Typed<Context, Type, S>,
&'b Elim::Cockatiel: Typed<Context, Type, S>,
&'b Elim::Chicken: Typed<Context, Type, S>,
&'b Elim::Bat: Typed<Context, Type, S>,
&'b Elim::Penguin: Typed<Context, Type, S>,
&'b Elim::Goose: Typed<Context, Type, S>,
&'b Elim::Peacock: Typed<Context, Type, S>,
&'b Elim::Eagle: Typed<Context, Type, S>,
&'b Elim::Parrot: Typed<Context, Type, S>,
&'b Elim::Crow: Typed<Context, Type, S>,
&'b Elim::Dodo: Typed<Context, Type, S>,
&'b Elim::Parakeet: Typed<Context, Type, S>,
&'b Elim::Puffin: Typed<Context, Type, S>,
&'b Elim::Toucan: Typed<Context, Type, S>,
&'b Elim::BloodmoonBat: Typed<Context, Type, S>,
&'b Elim::VampireBat: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::SnowyOwl: Typed<Context, Type, S>,
&'b Elim::HornedOwl: Typed<Context, Type, S>,
&'b Elim::Duck: Typed<Context, Type, S>,
&'b Elim::Cockatiel: Typed<Context, Type, S>,
&'b Elim::Chicken: Typed<Context, Type, S>,
&'b Elim::Bat: Typed<Context, Type, S>,
&'b Elim::Penguin: Typed<Context, Type, S>,
&'b Elim::Goose: Typed<Context, Type, S>,
&'b Elim::Peacock: Typed<Context, Type, S>,
&'b Elim::Eagle: Typed<Context, Type, S>,
&'b Elim::Parrot: Typed<Context, Type, S>,
&'b Elim::Crow: Typed<Context, Type, S>,
&'b Elim::Dodo: Typed<Context, Type, S>,
&'b Elim::Parakeet: Typed<Context, Type, S>,
&'b Elim::Puffin: Typed<Context, Type, S>,
&'b Elim::Toucan: Typed<Context, Type, S>,
&'b Elim::BloodmoonBat: Typed<Context, Type, S>,
&'b Elim::VampireBat: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Ogre: Typed<Context, Type, S>,
&'b Elim::Cyclops: Typed<Context, Type, S>,
&'b Elim::Wendigo: Typed<Context, Type, S>,
&'b Elim::Cavetroll: Typed<Context, Type, S>,
&'b Elim::Mountaintroll: Typed<Context, Type, S>,
&'b Elim::Swamptroll: Typed<Context, Type, S>,
&'b Elim::Dullahan: Typed<Context, Type, S>,
&'b Elim::Werewolf: Typed<Context, Type, S>,
&'b Elim::Occultsaurok: Typed<Context, Type, S>,
&'b Elim::Mightysaurok: Typed<Context, Type, S>,
&'b Elim::Slysaurok: Typed<Context, Type, S>,
&'b Elim::Mindflayer: Typed<Context, Type, S>,
&'b Elim::Minotaur: Typed<Context, Type, S>,
&'b Elim::Tidalwarrior: Typed<Context, Type, S>,
&'b Elim::Yeti: Typed<Context, Type, S>,
&'b Elim::Harvester: Typed<Context, Type, S>,
&'b Elim::Blueoni: Typed<Context, Type, S>,
&'b Elim::Redoni: Typed<Context, Type, S>,
&'b Elim::Cultistwarlord: Typed<Context, Type, S>,
&'b Elim::Cultistwarlock: Typed<Context, Type, S>,
&'b Elim::Huskbrute: Typed<Context, Type, S>,
&'b Elim::Tursus: Typed<Context, Type, S>,
&'b Elim::Gigasfrost: Typed<Context, Type, S>,
&'b Elim::AdletElder: Typed<Context, Type, S>,
&'b Elim::SeaBishop: Typed<Context, Type, S>,
&'b Elim::HaniwaGeneral: Typed<Context, Type, S>,
&'b Elim::TerracottaBesieger: Typed<Context, Type, S>,
&'b Elim::TerracottaDemolisher: Typed<Context, Type, S>,
&'b Elim::TerracottaPunisher: Typed<Context, Type, S>,
&'b Elim::TerracottaPursuer: Typed<Context, Type, S>,
&'b Elim::Cursekeeper: Typed<Context, Type, S>,
&'b Elim::Forgemaster: Typed<Context, Type, S>,
&'b Elim::Strigoi: Typed<Context, Type, S>,
&'b Elim::Executioner: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Ogre: Typed<Context, Type, S>,
&'b Elim::Cyclops: Typed<Context, Type, S>,
&'b Elim::Wendigo: Typed<Context, Type, S>,
&'b Elim::Cavetroll: Typed<Context, Type, S>,
&'b Elim::Mountaintroll: Typed<Context, Type, S>,
&'b Elim::Swamptroll: Typed<Context, Type, S>,
&'b Elim::Dullahan: Typed<Context, Type, S>,
&'b Elim::Werewolf: Typed<Context, Type, S>,
&'b Elim::Occultsaurok: Typed<Context, Type, S>,
&'b Elim::Mightysaurok: Typed<Context, Type, S>,
&'b Elim::Slysaurok: Typed<Context, Type, S>,
&'b Elim::Mindflayer: Typed<Context, Type, S>,
&'b Elim::Minotaur: Typed<Context, Type, S>,
&'b Elim::Tidalwarrior: Typed<Context, Type, S>,
&'b Elim::Yeti: Typed<Context, Type, S>,
&'b Elim::Harvester: Typed<Context, Type, S>,
&'b Elim::Blueoni: Typed<Context, Type, S>,
&'b Elim::Redoni: Typed<Context, Type, S>,
&'b Elim::Cultistwarlord: Typed<Context, Type, S>,
&'b Elim::Cultistwarlock: Typed<Context, Type, S>,
&'b Elim::Huskbrute: Typed<Context, Type, S>,
&'b Elim::Tursus: Typed<Context, Type, S>,
&'b Elim::Gigasfrost: Typed<Context, Type, S>,
&'b Elim::AdletElder: Typed<Context, Type, S>,
&'b Elim::SeaBishop: Typed<Context, Type, S>,
&'b Elim::HaniwaGeneral: Typed<Context, Type, S>,
&'b Elim::TerracottaBesieger: Typed<Context, Type, S>,
&'b Elim::TerracottaDemolisher: Typed<Context, Type, S>,
&'b Elim::TerracottaPunisher: Typed<Context, Type, S>,
&'b Elim::TerracottaPursuer: Typed<Context, Type, S>,
&'b Elim::Cursekeeper: Typed<Context, Type, S>,
&'b Elim::Forgemaster: Typed<Context, Type, S>,
&'b Elim::Strigoi: Typed<Context, Type, S>,
&'b Elim::Executioner: Typed<Context, Type, S>,
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a Species,), Context), Type, S> for &'b ElimCase<Cases<Elim>>
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a SpriteKind,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Empty: Typed<Context, Type, S>,
&'b Elim::Ember: Typed<Context, Type, S>,
&'b Elim::SmokeDummy: Typed<Context, Type, S>,
&'b Elim::Bomb: Typed<Context, Type, S>,
&'b Elim::FireBlock: Typed<Context, Type, S>,
&'b Elim::HotSurface: Typed<Context, Type, S>,
&'b Elim::Stones2: Typed<Context, Type, S>,
&'b Elim::CoatRack: Typed<Context, Type, S>,
&'b Elim::Bed: Typed<Context, Type, S>,
&'b Elim::Bench: Typed<Context, Type, S>,
&'b Elim::ChairSingle: Typed<Context, Type, S>,
&'b Elim::ChairDouble: Typed<Context, Type, S>,
&'b Elim::DrawerLarge: Typed<Context, Type, S>,
&'b Elim::DrawerMedium: Typed<Context, Type, S>,
&'b Elim::DrawerSmall: Typed<Context, Type, S>,
&'b Elim::TableSide: Typed<Context, Type, S>,
&'b Elim::TableDining: Typed<Context, Type, S>,
&'b Elim::TableDouble: Typed<Context, Type, S>,
&'b Elim::WardrobeSingle: Typed<Context, Type, S>,
&'b Elim::WardrobeDouble: Typed<Context, Type, S>,
&'b Elim::BookshelfArabic: Typed<Context, Type, S>,
&'b Elim::WallTableArabic: Typed<Context, Type, S>,
&'b Elim::TableArabicLarge: Typed<Context, Type, S>,
&'b Elim::TableArabicSmall: Typed<Context, Type, S>,
&'b Elim::CupboardArabic: Typed<Context, Type, S>,
&'b Elim::OvenArabic: Typed<Context, Type, S>,
&'b Elim::CushionArabic: Typed<Context, Type, S>,
&'b Elim::CanapeArabic: Typed<Context, Type, S>,
&'b Elim::Shelf: Typed<Context, Type, S>,
&'b Elim::Planter: Typed<Context, Type, S>,
&'b Elim::Pot: Typed<Context, Type, S>,
&'b Elim::BedMesa: Typed<Context, Type, S>,
&'b Elim::WallTableMesa: Typed<Context, Type, S>,
&'b Elim::MirrorMesa: Typed<Context, Type, S>,
&'b Elim::WardrobeSingleMesa: Typed<Context, Type, S>,
&'b Elim::WardrobeDoubleMesa: Typed<Context, Type, S>,
&'b Elim::CupboardMesa: Typed<Context, Type, S>,
&'b Elim::TableCoastalLarge: Typed<Context, Type, S>,
&'b Elim::BenchCoastal: Typed<Context, Type, S>,
&'b Elim::CraftingBench: Typed<Context, Type, S>,
&'b Elim::Forge: Typed<Context, Type, S>,
&'b Elim::Cauldron: Typed<Context, Type, S>,
&'b Elim::Anvil: Typed<Context, Type, S>,
&'b Elim::CookingPot: Typed<Context, Type, S>,
&'b Elim::SpinningWheel: Typed<Context, Type, S>,
&'b Elim::TanningRack: Typed<Context, Type, S>,
&'b Elim::Loom: Typed<Context, Type, S>,
&'b Elim::DismantlingBench: Typed<Context, Type, S>,
&'b Elim::RepairBench: Typed<Context, Type, S>,
&'b Elim::HangingBasket: Typed<Context, Type, S>,
&'b Elim::HangingSign: Typed<Context, Type, S>,
&'b Elim::ChristmasOrnament: Typed<Context, Type, S>,
&'b Elim::ChristmasWreath: Typed<Context, Type, S>,
&'b Elim::WallLampWizard: Typed<Context, Type, S>,
&'b Elim::WallLamp: Typed<Context, Type, S>,
&'b Elim::WallLampSmall: Typed<Context, Type, S>,
&'b Elim::WallSconce: Typed<Context, Type, S>,
&'b Elim::DungeonWallDecor: Typed<Context, Type, S>,
&'b Elim::WallLampMesa: Typed<Context, Type, S>,
&'b Elim::Tent: Typed<Context, Type, S>,
&'b Elim::Bedroll: Typed<Context, Type, S>,
&'b Elim::BedrollSnow: Typed<Context, Type, S>,
&'b Elim::BedrollPirate: Typed<Context, Type, S>,
&'b Elim::Sign: Typed<Context, Type, S>,
&'b Elim::Helm: Typed<Context, Type, S>,
&'b Elim::Scarecrow: Typed<Context, Type, S>,
&'b Elim::FountainArabic: Typed<Context, Type, S>,
&'b Elim::Hearth: Typed<Context, Type, S>,
&'b Elim::BarrelCactus: Typed<Context, Type, S>,
&'b Elim::RoundCactus: Typed<Context, Type, S>,
&'b Elim::ShortCactus: Typed<Context, Type, S>,
&'b Elim::MedFlatCactus: Typed<Context, Type, S>,
&'b Elim::ShortFlatCactus: Typed<Context, Type, S>,
&'b Elim::LargeCactus: Typed<Context, Type, S>,
&'b Elim::TallCactus: Typed<Context, Type, S>,
&'b Elim::BlueFlower: Typed<Context, Type, S>,
&'b Elim::PinkFlower: Typed<Context, Type, S>,
&'b Elim::PurpleFlower: Typed<Context, Type, S>,
&'b Elim::RedFlower: Typed<Context, Type, S>,
&'b Elim::WhiteFlower: Typed<Context, Type, S>,
&'b Elim::YellowFlower: Typed<Context, Type, S>,
&'b Elim::Sunflower: Typed<Context, Type, S>,
&'b Elim::Moonbell: Typed<Context, Type, S>,
&'b Elim::Pyrebloom: Typed<Context, Type, S>,
&'b Elim::LushFlower: Typed<Context, Type, S>,
&'b Elim::LanternFlower: Typed<Context, Type, S>,
&'b Elim::LongGrass: Typed<Context, Type, S>,
&'b Elim::MediumGrass: Typed<Context, Type, S>,
&'b Elim::ShortGrass: Typed<Context, Type, S>,
&'b Elim::Fern: Typed<Context, Type, S>,
&'b Elim::LargeGrass: Typed<Context, Type, S>,
&'b Elim::GrassSnow: Typed<Context, Type, S>,
&'b Elim::Reed: Typed<Context, Type, S>,
&'b Elim::GrassBlue: Typed<Context, Type, S>,
&'b Elim::SavannaGrass: Typed<Context, Type, S>,
&'b Elim::TallSavannaGrass: Typed<Context, Type, S>,
&'b Elim::RedSavannaGrass: Typed<Context, Type, S>,
&'b Elim::SavannaBush: Typed<Context, Type, S>,
&'b Elim::Welwitch: Typed<Context, Type, S>,
&'b Elim::LeafyPlant: Typed<Context, Type, S>,
&'b Elim::DeadBush: Typed<Context, Type, S>,
&'b Elim::JungleFern: Typed<Context, Type, S>,
&'b Elim::GrassBlueShort: Typed<Context, Type, S>,
&'b Elim::GrassBlueMedium: Typed<Context, Type, S>,
&'b Elim::GrassBlueLong: Typed<Context, Type, S>,
&'b Elim::CavernLillypadBlue: Typed<Context, Type, S>,
&'b Elim::EnsnaringVines: Typed<Context, Type, S>,
&'b Elim::LillyPads: Typed<Context, Type, S>,
&'b Elim::JungleLeafyPlant: Typed<Context, Type, S>,
&'b Elim::JungleRedGrass: Typed<Context, Type, S>,
&'b Elim::LanternPlant: Typed<Context, Type, S>,
&'b Elim::SporeReed: Typed<Context, Type, S>,
&'b Elim::DeadPlant: Typed<Context, Type, S>,
&'b Elim::Corn: Typed<Context, Type, S>,
&'b Elim::WheatYellow: Typed<Context, Type, S>,
&'b Elim::WheatGreen: Typed<Context, Type, S>,
&'b Elim::LingonBerry: Typed<Context, Type, S>,
&'b Elim::Blueberry: Typed<Context, Type, S>,
&'b Elim::Cabbage: Typed<Context, Type, S>,
&'b Elim::Pumpkin: Typed<Context, Type, S>,
&'b Elim::Carrot: Typed<Context, Type, S>,
&'b Elim::Tomato: Typed<Context, Type, S>,
&'b Elim::Radish: Typed<Context, Type, S>,
&'b Elim::Turnip: Typed<Context, Type, S>,
&'b Elim::Flax: Typed<Context, Type, S>,
&'b Elim::Mushroom: Typed<Context, Type, S>,
&'b Elim::CaveMushroom: Typed<Context, Type, S>,
&'b Elim::Cotton: Typed<Context, Type, S>,
&'b Elim::WildFlax: Typed<Context, Type, S>,
&'b Elim::SewerMushroom: Typed<Context, Type, S>,
&'b Elim::LushMushroom: Typed<Context, Type, S>,
&'b Elim::RockyMushroom: Typed<Context, Type, S>,
&'b Elim::GlowMushroom: Typed<Context, Type, S>,
&'b Elim::StonyCoral: Typed<Context, Type, S>,
&'b Elim::SoftCoral: Typed<Context, Type, S>,
&'b Elim::SeaweedTemperate: Typed<Context, Type, S>,
&'b Elim::SeaweedTropical: Typed<Context, Type, S>,
&'b Elim::GiantKelp: Typed<Context, Type, S>,
&'b Elim::BullKelp: Typed<Context, Type, S>,
&'b Elim::WavyAlgae: Typed<Context, Type, S>,
&'b Elim::SeaGrapes: Typed<Context, Type, S>,
&'b Elim::MermaidsFan: Typed<Context, Type, S>,
&'b Elim::SeaAnemone: Typed<Context, Type, S>,
&'b Elim::Seagrass: Typed<Context, Type, S>,
&'b Elim::RedAlgae: Typed<Context, Type, S>,
&'b Elim::Liana: Typed<Context, Type, S>,
&'b Elim::MycelBlue: Typed<Context, Type, S>,
&'b Elim::CeilingMushroom: Typed<Context, Type, S>,
&'b Elim::Mold: Typed<Context, Type, S>,
&'b Elim::Root: Typed<Context, Type, S>,
&'b Elim::CeilingLanternPlant: Typed<Context, Type, S>,
&'b Elim::CeilingLanternFlower: Typed<Context, Type, S>,
&'b Elim::CeilingJungleLeafyPlant: Typed<Context, Type, S>,
&'b Elim::Twigs: Typed<Context, Type, S>,
&'b Elim::Wood: Typed<Context, Type, S>,
&'b Elim::Bamboo: Typed<Context, Type, S>,
&'b Elim::Hardwood: Typed<Context, Type, S>,
&'b Elim::Ironwood: Typed<Context, Type, S>,
&'b Elim::Frostwood: Typed<Context, Type, S>,
&'b Elim::Eldwood: Typed<Context, Type, S>,
&'b Elim::Apple: Typed<Context, Type, S>,
&'b Elim::Coconut: Typed<Context, Type, S>,
&'b Elim::Stones: Typed<Context, Type, S>,
&'b Elim::Seashells: Typed<Context, Type, S>,
&'b Elim::Beehive: Typed<Context, Type, S>,
&'b Elim::Bowl: Typed<Context, Type, S>,
&'b Elim::PotionMinor: Typed<Context, Type, S>,
&'b Elim::PotionDummy: Typed<Context, Type, S>,
&'b Elim::VialEmpty: Typed<Context, Type, S>,
&'b Elim::Amethyst: Typed<Context, Type, S>,
&'b Elim::Ruby: Typed<Context, Type, S>,
&'b Elim::Sapphire: Typed<Context, Type, S>,
&'b Elim::Emerald: Typed<Context, Type, S>,
&'b Elim::Topaz: Typed<Context, Type, S>,
&'b Elim::Diamond: Typed<Context, Type, S>,
&'b Elim::Bloodstone: Typed<Context, Type, S>,
&'b Elim::Coal: Typed<Context, Type, S>,
&'b Elim::Cobalt: Typed<Context, Type, S>,
&'b Elim::Copper: Typed<Context, Type, S>,
&'b Elim::Iron: Typed<Context, Type, S>,
&'b Elim::Tin: Typed<Context, Type, S>,
&'b Elim::Silver: Typed<Context, Type, S>,
&'b Elim::Gold: Typed<Context, Type, S>,
&'b Elim::Velorite: Typed<Context, Type, S>,
&'b Elim::VeloriteFrag: Typed<Context, Type, S>,
&'b Elim::Mud: Typed<Context, Type, S>,
&'b Elim::Grave: Typed<Context, Type, S>,
&'b Elim::Door: Typed<Context, Type, S>,
&'b Elim::DoorDark: Typed<Context, Type, S>,
&'b Elim::DoorWide: Typed<Context, Type, S>,
&'b Elim::BoneKeyhole: Typed<Context, Type, S>,
&'b Elim::BoneKeyDoor: Typed<Context, Type, S>,
&'b Elim::Keyhole: Typed<Context, Type, S>,
&'b Elim::KeyDoor: Typed<Context, Type, S>,
&'b Elim::GlassKeyhole: Typed<Context, Type, S>,
&'b Elim::KeyholeBars: Typed<Context, Type, S>,
&'b Elim::HaniwaKeyDoor: Typed<Context, Type, S>,
&'b Elim::HaniwaKeyhole: Typed<Context, Type, S>,
&'b Elim::TerracottaKeyDoor: Typed<Context, Type, S>,
&'b Elim::TerracottaKeyhole: Typed<Context, Type, S>,
&'b Elim::SahaginKeyhole: Typed<Context, Type, S>,
&'b Elim::SahaginKeyDoor: Typed<Context, Type, S>,
&'b Elim::VampireKeyDoor: Typed<Context, Type, S>,
&'b Elim::VampireKeyhole: Typed<Context, Type, S>,
&'b Elim::MyrmidonKeyDoor: Typed<Context, Type, S>,
&'b Elim::MyrmidonKeyhole: Typed<Context, Type, S>,
&'b Elim::MinotaurKeyhole: Typed<Context, Type, S>,
&'b Elim::Window1: Typed<Context, Type, S>,
&'b Elim::Window2: Typed<Context, Type, S>,
&'b Elim::Window3: Typed<Context, Type, S>,
&'b Elim::Window4: Typed<Context, Type, S>,
&'b Elim::WitchWindow: Typed<Context, Type, S>,
&'b Elim::WindowArabic: Typed<Context, Type, S>,
&'b Elim::GlassBarrier: Typed<Context, Type, S>,
&'b Elim::SeaDecorBlock: Typed<Context, Type, S>,
&'b Elim::CliffDecorBlock: Typed<Context, Type, S>,
&'b Elim::MagicalBarrier: Typed<Context, Type, S>,
&'b Elim::OneWayWall: Typed<Context, Type, S>,
&'b Elim::SeaDecorWindowHor: Typed<Context, Type, S>,
&'b Elim::SeaDecorWindowVer: Typed<Context, Type, S>,
&'b Elim::DropGate: Typed<Context, Type, S>,
&'b Elim::DropGateBottom: Typed<Context, Type, S>,
&'b Elim::WoodBarricades: Typed<Context, Type, S>,
&'b Elim::Rope: Typed<Context, Type, S>,
&'b Elim::SeaDecorChain: Typed<Context, Type, S>,
&'b Elim::IronSpike: Typed<Context, Type, S>,
&'b Elim::DoorBars: Typed<Context, Type, S>,
&'b Elim::HaniwaTrap: Typed<Context, Type, S>,
&'b Elim::HaniwaTrapTriggered: Typed<Context, Type, S>,
&'b Elim::TerracottaStatue: Typed<Context, Type, S>,
&'b Elim::TerracottaBlock: Typed<Context, Type, S>,
&'b Elim::MetalChain: Typed<Context, Type, S>,
&'b Elim::Bones: Typed<Context, Type, S>,
&'b Elim::IceCrystal: Typed<Context, Type, S>,
&'b Elim::GlowIceCrystal: Typed<Context, Type, S>,
&'b Elim::CrystalHigh: Typed<Context, Type, S>,
&'b Elim::CrystalLow: Typed<Context, Type, S>,
&'b Elim::UnderwaterVent: Typed<Context, Type, S>,
&'b Elim::SeaUrchin: Typed<Context, Type, S>,
&'b Elim::IceSpike: Typed<Context, Type, S>,
&'b Elim::Orb: Typed<Context, Type, S>,
&'b Elim::EnsnaringWeb: Typed<Context, Type, S>,
&'b Elim::DiamondLight: Typed<Context, Type, S>,
&'b Elim::Gravestone: Typed<Context, Type, S>,
&'b Elim::Melon: Typed<Context, Type, S>,
&'b Elim::ForgeTools: Typed<Context, Type, S>,
&'b Elim::JugAndBowlArabic: Typed<Context, Type, S>,
&'b Elim::JugArabic: Typed<Context, Type, S>,
&'b Elim::DecorSetArabic: Typed<Context, Type, S>,
&'b Elim::SepareArabic: Typed<Context, Type, S>,
&'b Elim::Candle: Typed<Context, Type, S>,
&'b Elim::SmithingTable: Typed<Context, Type, S>,
&'b Elim::Forge0: Typed<Context, Type, S>,
&'b Elim::GearWheel0: Typed<Context, Type, S>,
&'b Elim::Quench0: Typed<Context, Type, S>,
&'b Elim::SeaDecorEmblem: Typed<Context, Type, S>,
&'b Elim::SeaDecorPillar: Typed<Context, Type, S>,
&'b Elim::MagicalSeal: Typed<Context, Type, S>,
&'b Elim::JugAndCupsCoastal: Typed<Context, Type, S>,
&'b Elim::Lantern: Typed<Context, Type, S>,
&'b Elim::StreetLamp: Typed<Context, Type, S>,
&'b Elim::StreetLampTall: Typed<Context, Type, S>,
&'b Elim::SeashellLantern: Typed<Context, Type, S>,
&'b Elim::FireBowlGround: Typed<Context, Type, S>,
&'b Elim::MesaLantern: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::DungeonChest0: Typed<Context, Type, S>,
&'b Elim::DungeonChest1: Typed<Context, Type, S>,
&'b Elim::DungeonChest2: Typed<Context, Type, S>,
&'b Elim::DungeonChest3: Typed<Context, Type, S>,
&'b Elim::DungeonChest4: Typed<Context, Type, S>,
&'b Elim::DungeonChest5: Typed<Context, Type, S>,
&'b Elim::CoralChest: Typed<Context, Type, S>,
&'b Elim::HaniwaUrn: Typed<Context, Type, S>,
&'b Elim::TerracottaChest: Typed<Context, Type, S>,
&'b Elim::SahaginChest: Typed<Context, Type, S>,
&'b Elim::CommonLockedChest: Typed<Context, Type, S>,
&'b Elim::ChestBuried: Typed<Context, Type, S>,
&'b Elim::Crate: Typed<Context, Type, S>,
&'b Elim::Barrel: Typed<Context, Type, S>,
&'b Elim::CrateBlock: Typed<Context, Type, S>,
&'b Elim::Fence: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a SpriteKind,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::Empty: Typed<Context, Type, S>,
&'b Elim::Ember: Typed<Context, Type, S>,
&'b Elim::SmokeDummy: Typed<Context, Type, S>,
&'b Elim::Bomb: Typed<Context, Type, S>,
&'b Elim::FireBlock: Typed<Context, Type, S>,
&'b Elim::HotSurface: Typed<Context, Type, S>,
&'b Elim::Stones2: Typed<Context, Type, S>,
&'b Elim::CoatRack: Typed<Context, Type, S>,
&'b Elim::Bed: Typed<Context, Type, S>,
&'b Elim::Bench: Typed<Context, Type, S>,
&'b Elim::ChairSingle: Typed<Context, Type, S>,
&'b Elim::ChairDouble: Typed<Context, Type, S>,
&'b Elim::DrawerLarge: Typed<Context, Type, S>,
&'b Elim::DrawerMedium: Typed<Context, Type, S>,
&'b Elim::DrawerSmall: Typed<Context, Type, S>,
&'b Elim::TableSide: Typed<Context, Type, S>,
&'b Elim::TableDining: Typed<Context, Type, S>,
&'b Elim::TableDouble: Typed<Context, Type, S>,
&'b Elim::WardrobeSingle: Typed<Context, Type, S>,
&'b Elim::WardrobeDouble: Typed<Context, Type, S>,
&'b Elim::BookshelfArabic: Typed<Context, Type, S>,
&'b Elim::WallTableArabic: Typed<Context, Type, S>,
&'b Elim::TableArabicLarge: Typed<Context, Type, S>,
&'b Elim::TableArabicSmall: Typed<Context, Type, S>,
&'b Elim::CupboardArabic: Typed<Context, Type, S>,
&'b Elim::OvenArabic: Typed<Context, Type, S>,
&'b Elim::CushionArabic: Typed<Context, Type, S>,
&'b Elim::CanapeArabic: Typed<Context, Type, S>,
&'b Elim::Shelf: Typed<Context, Type, S>,
&'b Elim::Planter: Typed<Context, Type, S>,
&'b Elim::Pot: Typed<Context, Type, S>,
&'b Elim::BedMesa: Typed<Context, Type, S>,
&'b Elim::WallTableMesa: Typed<Context, Type, S>,
&'b Elim::MirrorMesa: Typed<Context, Type, S>,
&'b Elim::WardrobeSingleMesa: Typed<Context, Type, S>,
&'b Elim::WardrobeDoubleMesa: Typed<Context, Type, S>,
&'b Elim::CupboardMesa: Typed<Context, Type, S>,
&'b Elim::TableCoastalLarge: Typed<Context, Type, S>,
&'b Elim::BenchCoastal: Typed<Context, Type, S>,
&'b Elim::CraftingBench: Typed<Context, Type, S>,
&'b Elim::Forge: Typed<Context, Type, S>,
&'b Elim::Cauldron: Typed<Context, Type, S>,
&'b Elim::Anvil: Typed<Context, Type, S>,
&'b Elim::CookingPot: Typed<Context, Type, S>,
&'b Elim::SpinningWheel: Typed<Context, Type, S>,
&'b Elim::TanningRack: Typed<Context, Type, S>,
&'b Elim::Loom: Typed<Context, Type, S>,
&'b Elim::DismantlingBench: Typed<Context, Type, S>,
&'b Elim::RepairBench: Typed<Context, Type, S>,
&'b Elim::HangingBasket: Typed<Context, Type, S>,
&'b Elim::HangingSign: Typed<Context, Type, S>,
&'b Elim::ChristmasOrnament: Typed<Context, Type, S>,
&'b Elim::ChristmasWreath: Typed<Context, Type, S>,
&'b Elim::WallLampWizard: Typed<Context, Type, S>,
&'b Elim::WallLamp: Typed<Context, Type, S>,
&'b Elim::WallLampSmall: Typed<Context, Type, S>,
&'b Elim::WallSconce: Typed<Context, Type, S>,
&'b Elim::DungeonWallDecor: Typed<Context, Type, S>,
&'b Elim::WallLampMesa: Typed<Context, Type, S>,
&'b Elim::Tent: Typed<Context, Type, S>,
&'b Elim::Bedroll: Typed<Context, Type, S>,
&'b Elim::BedrollSnow: Typed<Context, Type, S>,
&'b Elim::BedrollPirate: Typed<Context, Type, S>,
&'b Elim::Sign: Typed<Context, Type, S>,
&'b Elim::Helm: Typed<Context, Type, S>,
&'b Elim::Scarecrow: Typed<Context, Type, S>,
&'b Elim::FountainArabic: Typed<Context, Type, S>,
&'b Elim::Hearth: Typed<Context, Type, S>,
&'b Elim::BarrelCactus: Typed<Context, Type, S>,
&'b Elim::RoundCactus: Typed<Context, Type, S>,
&'b Elim::ShortCactus: Typed<Context, Type, S>,
&'b Elim::MedFlatCactus: Typed<Context, Type, S>,
&'b Elim::ShortFlatCactus: Typed<Context, Type, S>,
&'b Elim::LargeCactus: Typed<Context, Type, S>,
&'b Elim::TallCactus: Typed<Context, Type, S>,
&'b Elim::BlueFlower: Typed<Context, Type, S>,
&'b Elim::PinkFlower: Typed<Context, Type, S>,
&'b Elim::PurpleFlower: Typed<Context, Type, S>,
&'b Elim::RedFlower: Typed<Context, Type, S>,
&'b Elim::WhiteFlower: Typed<Context, Type, S>,
&'b Elim::YellowFlower: Typed<Context, Type, S>,
&'b Elim::Sunflower: Typed<Context, Type, S>,
&'b Elim::Moonbell: Typed<Context, Type, S>,
&'b Elim::Pyrebloom: Typed<Context, Type, S>,
&'b Elim::LushFlower: Typed<Context, Type, S>,
&'b Elim::LanternFlower: Typed<Context, Type, S>,
&'b Elim::LongGrass: Typed<Context, Type, S>,
&'b Elim::MediumGrass: Typed<Context, Type, S>,
&'b Elim::ShortGrass: Typed<Context, Type, S>,
&'b Elim::Fern: Typed<Context, Type, S>,
&'b Elim::LargeGrass: Typed<Context, Type, S>,
&'b Elim::GrassSnow: Typed<Context, Type, S>,
&'b Elim::Reed: Typed<Context, Type, S>,
&'b Elim::GrassBlue: Typed<Context, Type, S>,
&'b Elim::SavannaGrass: Typed<Context, Type, S>,
&'b Elim::TallSavannaGrass: Typed<Context, Type, S>,
&'b Elim::RedSavannaGrass: Typed<Context, Type, S>,
&'b Elim::SavannaBush: Typed<Context, Type, S>,
&'b Elim::Welwitch: Typed<Context, Type, S>,
&'b Elim::LeafyPlant: Typed<Context, Type, S>,
&'b Elim::DeadBush: Typed<Context, Type, S>,
&'b Elim::JungleFern: Typed<Context, Type, S>,
&'b Elim::GrassBlueShort: Typed<Context, Type, S>,
&'b Elim::GrassBlueMedium: Typed<Context, Type, S>,
&'b Elim::GrassBlueLong: Typed<Context, Type, S>,
&'b Elim::CavernLillypadBlue: Typed<Context, Type, S>,
&'b Elim::EnsnaringVines: Typed<Context, Type, S>,
&'b Elim::LillyPads: Typed<Context, Type, S>,
&'b Elim::JungleLeafyPlant: Typed<Context, Type, S>,
&'b Elim::JungleRedGrass: Typed<Context, Type, S>,
&'b Elim::LanternPlant: Typed<Context, Type, S>,
&'b Elim::SporeReed: Typed<Context, Type, S>,
&'b Elim::DeadPlant: Typed<Context, Type, S>,
&'b Elim::Corn: Typed<Context, Type, S>,
&'b Elim::WheatYellow: Typed<Context, Type, S>,
&'b Elim::WheatGreen: Typed<Context, Type, S>,
&'b Elim::LingonBerry: Typed<Context, Type, S>,
&'b Elim::Blueberry: Typed<Context, Type, S>,
&'b Elim::Cabbage: Typed<Context, Type, S>,
&'b Elim::Pumpkin: Typed<Context, Type, S>,
&'b Elim::Carrot: Typed<Context, Type, S>,
&'b Elim::Tomato: Typed<Context, Type, S>,
&'b Elim::Radish: Typed<Context, Type, S>,
&'b Elim::Turnip: Typed<Context, Type, S>,
&'b Elim::Flax: Typed<Context, Type, S>,
&'b Elim::Mushroom: Typed<Context, Type, S>,
&'b Elim::CaveMushroom: Typed<Context, Type, S>,
&'b Elim::Cotton: Typed<Context, Type, S>,
&'b Elim::WildFlax: Typed<Context, Type, S>,
&'b Elim::SewerMushroom: Typed<Context, Type, S>,
&'b Elim::LushMushroom: Typed<Context, Type, S>,
&'b Elim::RockyMushroom: Typed<Context, Type, S>,
&'b Elim::GlowMushroom: Typed<Context, Type, S>,
&'b Elim::StonyCoral: Typed<Context, Type, S>,
&'b Elim::SoftCoral: Typed<Context, Type, S>,
&'b Elim::SeaweedTemperate: Typed<Context, Type, S>,
&'b Elim::SeaweedTropical: Typed<Context, Type, S>,
&'b Elim::GiantKelp: Typed<Context, Type, S>,
&'b Elim::BullKelp: Typed<Context, Type, S>,
&'b Elim::WavyAlgae: Typed<Context, Type, S>,
&'b Elim::SeaGrapes: Typed<Context, Type, S>,
&'b Elim::MermaidsFan: Typed<Context, Type, S>,
&'b Elim::SeaAnemone: Typed<Context, Type, S>,
&'b Elim::Seagrass: Typed<Context, Type, S>,
&'b Elim::RedAlgae: Typed<Context, Type, S>,
&'b Elim::Liana: Typed<Context, Type, S>,
&'b Elim::MycelBlue: Typed<Context, Type, S>,
&'b Elim::CeilingMushroom: Typed<Context, Type, S>,
&'b Elim::Mold: Typed<Context, Type, S>,
&'b Elim::Root: Typed<Context, Type, S>,
&'b Elim::CeilingLanternPlant: Typed<Context, Type, S>,
&'b Elim::CeilingLanternFlower: Typed<Context, Type, S>,
&'b Elim::CeilingJungleLeafyPlant: Typed<Context, Type, S>,
&'b Elim::Twigs: Typed<Context, Type, S>,
&'b Elim::Wood: Typed<Context, Type, S>,
&'b Elim::Bamboo: Typed<Context, Type, S>,
&'b Elim::Hardwood: Typed<Context, Type, S>,
&'b Elim::Ironwood: Typed<Context, Type, S>,
&'b Elim::Frostwood: Typed<Context, Type, S>,
&'b Elim::Eldwood: Typed<Context, Type, S>,
&'b Elim::Apple: Typed<Context, Type, S>,
&'b Elim::Coconut: Typed<Context, Type, S>,
&'b Elim::Stones: Typed<Context, Type, S>,
&'b Elim::Seashells: Typed<Context, Type, S>,
&'b Elim::Beehive: Typed<Context, Type, S>,
&'b Elim::Bowl: Typed<Context, Type, S>,
&'b Elim::PotionMinor: Typed<Context, Type, S>,
&'b Elim::PotionDummy: Typed<Context, Type, S>,
&'b Elim::VialEmpty: Typed<Context, Type, S>,
&'b Elim::Amethyst: Typed<Context, Type, S>,
&'b Elim::Ruby: Typed<Context, Type, S>,
&'b Elim::Sapphire: Typed<Context, Type, S>,
&'b Elim::Emerald: Typed<Context, Type, S>,
&'b Elim::Topaz: Typed<Context, Type, S>,
&'b Elim::Diamond: Typed<Context, Type, S>,
&'b Elim::Bloodstone: Typed<Context, Type, S>,
&'b Elim::Coal: Typed<Context, Type, S>,
&'b Elim::Cobalt: Typed<Context, Type, S>,
&'b Elim::Copper: Typed<Context, Type, S>,
&'b Elim::Iron: Typed<Context, Type, S>,
&'b Elim::Tin: Typed<Context, Type, S>,
&'b Elim::Silver: Typed<Context, Type, S>,
&'b Elim::Gold: Typed<Context, Type, S>,
&'b Elim::Velorite: Typed<Context, Type, S>,
&'b Elim::VeloriteFrag: Typed<Context, Type, S>,
&'b Elim::Mud: Typed<Context, Type, S>,
&'b Elim::Grave: Typed<Context, Type, S>,
&'b Elim::Door: Typed<Context, Type, S>,
&'b Elim::DoorDark: Typed<Context, Type, S>,
&'b Elim::DoorWide: Typed<Context, Type, S>,
&'b Elim::BoneKeyhole: Typed<Context, Type, S>,
&'b Elim::BoneKeyDoor: Typed<Context, Type, S>,
&'b Elim::Keyhole: Typed<Context, Type, S>,
&'b Elim::KeyDoor: Typed<Context, Type, S>,
&'b Elim::GlassKeyhole: Typed<Context, Type, S>,
&'b Elim::KeyholeBars: Typed<Context, Type, S>,
&'b Elim::HaniwaKeyDoor: Typed<Context, Type, S>,
&'b Elim::HaniwaKeyhole: Typed<Context, Type, S>,
&'b Elim::TerracottaKeyDoor: Typed<Context, Type, S>,
&'b Elim::TerracottaKeyhole: Typed<Context, Type, S>,
&'b Elim::SahaginKeyhole: Typed<Context, Type, S>,
&'b Elim::SahaginKeyDoor: Typed<Context, Type, S>,
&'b Elim::VampireKeyDoor: Typed<Context, Type, S>,
&'b Elim::VampireKeyhole: Typed<Context, Type, S>,
&'b Elim::MyrmidonKeyDoor: Typed<Context, Type, S>,
&'b Elim::MyrmidonKeyhole: Typed<Context, Type, S>,
&'b Elim::MinotaurKeyhole: Typed<Context, Type, S>,
&'b Elim::Window1: Typed<Context, Type, S>,
&'b Elim::Window2: Typed<Context, Type, S>,
&'b Elim::Window3: Typed<Context, Type, S>,
&'b Elim::Window4: Typed<Context, Type, S>,
&'b Elim::WitchWindow: Typed<Context, Type, S>,
&'b Elim::WindowArabic: Typed<Context, Type, S>,
&'b Elim::GlassBarrier: Typed<Context, Type, S>,
&'b Elim::SeaDecorBlock: Typed<Context, Type, S>,
&'b Elim::CliffDecorBlock: Typed<Context, Type, S>,
&'b Elim::MagicalBarrier: Typed<Context, Type, S>,
&'b Elim::OneWayWall: Typed<Context, Type, S>,
&'b Elim::SeaDecorWindowHor: Typed<Context, Type, S>,
&'b Elim::SeaDecorWindowVer: Typed<Context, Type, S>,
&'b Elim::DropGate: Typed<Context, Type, S>,
&'b Elim::DropGateBottom: Typed<Context, Type, S>,
&'b Elim::WoodBarricades: Typed<Context, Type, S>,
&'b Elim::Rope: Typed<Context, Type, S>,
&'b Elim::SeaDecorChain: Typed<Context, Type, S>,
&'b Elim::IronSpike: Typed<Context, Type, S>,
&'b Elim::DoorBars: Typed<Context, Type, S>,
&'b Elim::HaniwaTrap: Typed<Context, Type, S>,
&'b Elim::HaniwaTrapTriggered: Typed<Context, Type, S>,
&'b Elim::TerracottaStatue: Typed<Context, Type, S>,
&'b Elim::TerracottaBlock: Typed<Context, Type, S>,
&'b Elim::MetalChain: Typed<Context, Type, S>,
&'b Elim::Bones: Typed<Context, Type, S>,
&'b Elim::IceCrystal: Typed<Context, Type, S>,
&'b Elim::GlowIceCrystal: Typed<Context, Type, S>,
&'b Elim::CrystalHigh: Typed<Context, Type, S>,
&'b Elim::CrystalLow: Typed<Context, Type, S>,
&'b Elim::UnderwaterVent: Typed<Context, Type, S>,
&'b Elim::SeaUrchin: Typed<Context, Type, S>,
&'b Elim::IceSpike: Typed<Context, Type, S>,
&'b Elim::Orb: Typed<Context, Type, S>,
&'b Elim::EnsnaringWeb: Typed<Context, Type, S>,
&'b Elim::DiamondLight: Typed<Context, Type, S>,
&'b Elim::Gravestone: Typed<Context, Type, S>,
&'b Elim::Melon: Typed<Context, Type, S>,
&'b Elim::ForgeTools: Typed<Context, Type, S>,
&'b Elim::JugAndBowlArabic: Typed<Context, Type, S>,
&'b Elim::JugArabic: Typed<Context, Type, S>,
&'b Elim::DecorSetArabic: Typed<Context, Type, S>,
&'b Elim::SepareArabic: Typed<Context, Type, S>,
&'b Elim::Candle: Typed<Context, Type, S>,
&'b Elim::SmithingTable: Typed<Context, Type, S>,
&'b Elim::Forge0: Typed<Context, Type, S>,
&'b Elim::GearWheel0: Typed<Context, Type, S>,
&'b Elim::Quench0: Typed<Context, Type, S>,
&'b Elim::SeaDecorEmblem: Typed<Context, Type, S>,
&'b Elim::SeaDecorPillar: Typed<Context, Type, S>,
&'b Elim::MagicalSeal: Typed<Context, Type, S>,
&'b Elim::JugAndCupsCoastal: Typed<Context, Type, S>,
&'b Elim::Lantern: Typed<Context, Type, S>,
&'b Elim::StreetLamp: Typed<Context, Type, S>,
&'b Elim::StreetLampTall: Typed<Context, Type, S>,
&'b Elim::SeashellLantern: Typed<Context, Type, S>,
&'b Elim::FireBowlGround: Typed<Context, Type, S>,
&'b Elim::MesaLantern: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::DungeonChest0: Typed<Context, Type, S>,
&'b Elim::DungeonChest1: Typed<Context, Type, S>,
&'b Elim::DungeonChest2: Typed<Context, Type, S>,
&'b Elim::DungeonChest3: Typed<Context, Type, S>,
&'b Elim::DungeonChest4: Typed<Context, Type, S>,
&'b Elim::DungeonChest5: Typed<Context, Type, S>,
&'b Elim::CoralChest: Typed<Context, Type, S>,
&'b Elim::HaniwaUrn: Typed<Context, Type, S>,
&'b Elim::TerracottaChest: Typed<Context, Type, S>,
&'b Elim::SahaginChest: Typed<Context, Type, S>,
&'b Elim::CommonLockedChest: Typed<Context, Type, S>,
&'b Elim::ChestBuried: Typed<Context, Type, S>,
&'b Elim::Crate: Typed<Context, Type, S>,
&'b Elim::Barrel: Typed<Context, Type, S>,
&'b Elim::CrateBlock: Typed<Context, Type, S>,
&'b Elim::Fence: Typed<Context, Type, S>,
fn reduce(self, ((head), context): ((&'a SpriteKind,), Context)) -> (Type, S)
source§impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a StructureBlock,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::None: Typed<Context, Type, S>,
&'b Elim::Grass: Typed<Context, Type, S>,
&'b Elim::TemperateLeaves: Typed<Context, Type, S>,
&'b Elim::PineLeaves: Typed<Context, Type, S>,
&'b Elim::Acacia: Typed<Context, Type, S>,
&'b Elim::Mangrove: Typed<Context, Type, S>,
&'b Elim::PalmLeavesInner: Typed<Context, Type, S>,
&'b Elim::PalmLeavesOuter: Typed<Context, Type, S>,
&'b Elim::Water: Typed<Context, Type, S>,
&'b Elim::GreenSludge: Typed<Context, Type, S>,
&'b Elim::Fruit: Typed<Context, Type, S>,
&'b Elim::Coconut: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::Hollow: Typed<Context, Type, S>,
&'b Elim::Liana: Typed<Context, Type, S>,
&'b Elim::Normal: Typed<((&'a Rgb<u8>,), Context), Type, S>,
&'b Elim::Log: Typed<Context, Type, S>,
&'b Elim::Filled: Typed<((&'a BlockKind, &'a Rgb<u8>), Context), Type, S>,
&'b Elim::Sprite: Typed<((&'a SpriteKind,), Context), Type, S>,
&'b Elim::Chestnut: Typed<Context, Type, S>,
&'b Elim::Baobab: Typed<Context, Type, S>,
&'b Elim::BirchWood: Typed<Context, Type, S>,
&'b Elim::FrostpineLeaves: Typed<Context, Type, S>,
&'b Elim::RotatedSprite: Typed<((&'a SpriteKind, &'a u8), Context), Type, S>,
&'b Elim::EntitySpawner: Typed<((&'a String, &'a f32), Context), Type, S>,
&'b Elim::Keyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::BoneKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::GlassKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::Sign: Typed<((&'a Content, &'a u8), Context), Type, S>,
&'b Elim::KeyholeBars: Typed<((&'a String,), Context), Type, S>,
&'b Elim::HaniwaKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::TerracottaKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::SahaginKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::VampireKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::MyrmidonKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::MinotaurKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::MapleLeaves: Typed<Context, Type, S>,
&'b Elim::CherryLeaves: Typed<Context, Type, S>,
&'b Elim::AutumnLeaves: Typed<Context, Type, S>,
&'b Elim::RedwoodWood: Typed<Context, Type, S>,
impl<'a, 'b, Elim: PackedElim, Context, Type, S> Typed<((&'a StructureBlock,), Context), Type, S> for &'b ElimCase<Cases<Elim>>where
&'b Elim::None: Typed<Context, Type, S>,
&'b Elim::Grass: Typed<Context, Type, S>,
&'b Elim::TemperateLeaves: Typed<Context, Type, S>,
&'b Elim::PineLeaves: Typed<Context, Type, S>,
&'b Elim::Acacia: Typed<Context, Type, S>,
&'b Elim::Mangrove: Typed<Context, Type, S>,
&'b Elim::PalmLeavesInner: Typed<Context, Type, S>,
&'b Elim::PalmLeavesOuter: Typed<Context, Type, S>,
&'b Elim::Water: Typed<Context, Type, S>,
&'b Elim::GreenSludge: Typed<Context, Type, S>,
&'b Elim::Fruit: Typed<Context, Type, S>,
&'b Elim::Coconut: Typed<Context, Type, S>,
&'b Elim::Chest: Typed<Context, Type, S>,
&'b Elim::Hollow: Typed<Context, Type, S>,
&'b Elim::Liana: Typed<Context, Type, S>,
&'b Elim::Normal: Typed<((&'a Rgb<u8>,), Context), Type, S>,
&'b Elim::Log: Typed<Context, Type, S>,
&'b Elim::Filled: Typed<((&'a BlockKind, &'a Rgb<u8>), Context), Type, S>,
&'b Elim::Sprite: Typed<((&'a SpriteKind,), Context), Type, S>,
&'b Elim::Chestnut: Typed<Context, Type, S>,
&'b Elim::Baobab: Typed<Context, Type, S>,
&'b Elim::BirchWood: Typed<Context, Type, S>,
&'b Elim::FrostpineLeaves: Typed<Context, Type, S>,
&'b Elim::RotatedSprite: Typed<((&'a SpriteKind, &'a u8), Context), Type, S>,
&'b Elim::EntitySpawner: Typed<((&'a String, &'a f32), Context), Type, S>,
&'b Elim::Keyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::BoneKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::GlassKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::Sign: Typed<((&'a Content, &'a u8), Context), Type, S>,
&'b Elim::KeyholeBars: Typed<((&'a String,), Context), Type, S>,
&'b Elim::HaniwaKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::TerracottaKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::SahaginKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::VampireKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::MyrmidonKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::MinotaurKeyhole: Typed<((&'a String,), Context), Type, S>,
&'b Elim::MapleLeaves: Typed<Context, Type, S>,
&'b Elim::CherryLeaves: Typed<Context, Type, S>,
&'b Elim::AutumnLeaves: Typed<Context, Type, S>,
&'b Elim::RedwoodWood: Typed<Context, Type, S>,
fn reduce( self, ((head), context): ((&'a StructureBlock,), Context), ) -> (Type, S)
Auto Trait Implementations§
impl<Cases> Freeze for ElimCase<Cases>where
Cases: Freeze,
impl<Cases> RefUnwindSafe for ElimCase<Cases>where
Cases: RefUnwindSafe,
impl<Cases> Send for ElimCase<Cases>where
Cases: Send,
impl<Cases> Sync for ElimCase<Cases>where
Cases: Sync,
impl<Cases> Unpin for ElimCase<Cases>where
Cases: Unpin,
impl<Cases> UnwindSafe for ElimCase<Cases>where
Cases: UnwindSafe,
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more