Skip to main content

ErasedDataResolver

Trait ErasedDataResolver 

Source
pub trait ErasedDataResolver: ResolverSyncBound + Send {
Show 28 methods // Required methods fn get_spell<'life0, 'dynosaur>( &'life0 self, spell_id: SpellId, ) -> Pin<Box<dyn Future<Output = Result<SpellDataFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_spells<'life0, 'life1, 'dynosaur>( &'life0 self, spell_ids: &'life1 [SpellId], ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellDataFlat>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur; fn get_spell_effect<'life0, 'dynosaur>( &'life0 self, spell_id: SpellId, effect_index: u8, ) -> Pin<Box<dyn Future<Output = Result<SpellEffect, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_spell_effects<'life0, 'dynosaur>( &'life0 self, spell_id: SpellId, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellEffect>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_item<'life0, 'dynosaur>( &'life0 self, item_id: i32, ) -> Pin<Box<dyn Future<Output = Result<ItemDataFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_scaling_data<'life0, 'dynosaur>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Arc<ItemScalingData>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_power_types<'life0, 'dynosaur>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<PowerTypeFlat>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_spec<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<SpecDataFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_trait_tree<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<TraitTreeFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_expansion_trait_tree<'life0, 'life1, 'dynosaur>( &'life0 self, expansion_id: i32, system: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ExpansionTraitTreeFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur; fn get_rotation_script<'life0, 'life1, 'dynosaur>( &'life0 self, rotation_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<String, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur; fn get_spell_overrides<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<(SpellId, SpellId)>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_specialization_spells<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellId>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_racial_spells<'life0, 'dynosaur>( &'life0 self, race_id: i32, class_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellId>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_expected_stats<'life0, 'dynosaur>( &'life0 self, expansion_id: i32, lvl: i32, ) -> Pin<Box<dyn Future<Output = Result<ExpectedStatFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_item_damage_scaling<'life0, 'life1, 'dynosaur>( &'life0 self, item_level: i32, weapon_type: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ItemDamageScalingFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur; fn search_spells<'life0, 'life1, 'dynosaur>( &'life0 self, query: &'life1 str, limit: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellSearchResult>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur; fn find_consumable_items<'life0, 'life1, 'dynosaur>( &'life0 self, name_token: &'life1 str, subclass: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<ItemDataFlat>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur; fn get_enchantment<'life0, 'dynosaur>( &'life0 self, enchantment_id: i32, ) -> Pin<Box<dyn Future<Output = Result<EnchantmentRow, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn find_permanent_enchant<'life0, 'life1, 'dynosaur>( &'life0 self, query: &'life1 PermanentEnchantQuery, ) -> Pin<Box<dyn Future<Output = Result<Option<PermanentEnchantFlat>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur; fn get_creature<'life0, 'dynosaur>( &'life0 self, creature_id: i32, ) -> Pin<Box<dyn Future<Output = Result<CreatureFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_creature_difficulties<'life0, 'dynosaur>( &'life0 self, creature_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<CreatureDifficultyFlat>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_content_tuning<'life0, 'dynosaur>( &'life0 self, content_tuning_id: i32, ) -> Pin<Box<dyn Future<Output = Result<ContentTuningFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_content_tuning_x_difficulty<'life0, 'dynosaur>( &'life0 self, content_tuning_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<ContentTuningXDifficultyFlat>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_content_tuning_x_expected<'life0, 'dynosaur>( &'life0 self, content_tuning_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<ContentTuningXExpectedFlat>, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_expected_stat_mod<'life0, 'dynosaur>( &'life0 self, expected_stat_mod_id: i32, ) -> Pin<Box<dyn Future<Output = Result<ExpectedStatModFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn get_challenge_mode_health<'life0, 'dynosaur>( &'life0 self, keystone_level: i32, ) -> Pin<Box<dyn Future<Output = Result<ChallengeModeHealthFlat, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur; fn decode_traits<'life0, 'life1, 'dynosaur>( &'life0 self, spec_id: i32, trait_string: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<TraitTreeWithSelections, ResolverError>> + Send + 'dynosaur>> where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur;
}
Expand description

Unified data resolver trait (DynDataResolver restores dyn polymorphism); method futures are Send but not Sync.

Required Methods§

Source

fn get_spell<'life0, 'dynosaur>( &'life0 self, spell_id: SpellId, ) -> Pin<Box<dyn Future<Output = Result<SpellDataFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Source

fn get_spells<'life0, 'life1, 'dynosaur>( &'life0 self, spell_ids: &'life1 [SpellId], ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellDataFlat>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Source

fn get_spell_effect<'life0, 'dynosaur>( &'life0 self, spell_id: SpellId, effect_index: u8, ) -> Pin<Box<dyn Future<Output = Result<SpellEffect, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

effect_index is 1-based (author-facing).

Source

fn get_spell_effects<'life0, 'dynosaur>( &'life0 self, spell_id: SpellId, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellEffect>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Source

fn get_item<'life0, 'dynosaur>( &'life0 self, item_id: i32, ) -> Pin<Box<dyn Future<Output = Result<ItemDataFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Source

fn get_scaling_data<'life0, 'dynosaur>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Arc<ItemScalingData>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Source

fn get_power_types<'life0, 'dynosaur>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<PowerTypeFlat>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Source

fn get_spec<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<SpecDataFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Source

fn get_trait_tree<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<TraitTreeFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Source

fn get_expansion_trait_tree<'life0, 'life1, 'dynosaur>( &'life0 self, expansion_id: i32, system: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ExpansionTraitTreeFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Fetch a class-agnostic expansion progression tree, such as Midnight’s Omnium Folio.

Source

fn get_rotation_script<'life0, 'life1, 'dynosaur>( &'life0 self, rotation_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<String, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Source

fn get_spell_overrides<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<(SpellId, SpellId)>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Required for resolver parity: a backend with no override table returns Ok(vec![]).

Source

fn get_specialization_spells<'life0, 'dynosaur>( &'life0 self, spec_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellId>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Every spell id assigned to the spec in SpecializationSpells; a backend with no table returns Ok(vec![]).

Source

fn get_racial_spells<'life0, 'dynosaur>( &'life0 self, race_id: i32, class_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellId>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Every racial ability the race grants the class; a backend with no table returns Ok(vec![]).

race_id is ChrRaces.ID and class_id is ChrClasses.ID.

Source

fn get_expected_stats<'life0, 'dynosaur>( &'life0 self, expansion_id: i32, lvl: i32, ) -> Pin<Box<dyn Future<Output = Result<ExpectedStatFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Required for resolver parity: return ExpectedStatsNotFound when a backend cannot source it.

Source

fn get_item_damage_scaling<'life0, 'life1, 'dynosaur>( &'life0 self, item_level: i32, weapon_type: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ItemDamageScalingFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Required for resolver parity: return ItemDamageScalingNotFound when a backend cannot source it.

Source

fn search_spells<'life0, 'life1, 'dynosaur>( &'life0 self, query: &'life1 str, limit: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<SpellSearchResult>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Defaults to Unsupported; a backend with no search index fails loud rather than returning empty.

Source

fn find_consumable_items<'life0, 'life1, 'dynosaur>( &'life0 self, name_token: &'life1 str, subclass: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<ItemDataFlat>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Finds consumable items whose tokenized names contain name_token.

Source

fn get_enchantment<'life0, 'dynosaur>( &'life0 self, enchantment_id: i32, ) -> Pin<Box<dyn Future<Output = Result<EnchantmentRow, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Required for resolver parity: return EnchantmentNotFound when a backend cannot source it.

Source

fn find_permanent_enchant<'life0, 'life1, 'dynosaur>( &'life0 self, query: &'life1 PermanentEnchantQuery, ) -> Pin<Box<dyn Future<Output = Result<Option<PermanentEnchantFlat>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Resolves a named permanent enchant through the profession-derived SimC index.

Source

fn get_creature<'life0, 'dynosaur>( &'life0 self, creature_id: i32, ) -> Pin<Box<dyn Future<Output = Result<CreatureFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Creature identity row (Creature table) by NPC ID; defaults to Unsupported until a backend implements enemy resolution.

Source

fn get_creature_difficulties<'life0, 'dynosaur>( &'life0 self, creature_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<CreatureDifficultyFlat>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Every CreatureDifficulty variant for a creature; defaults to Unsupported until a backend implements enemy resolution.

Source

fn get_content_tuning<'life0, 'dynosaur>( &'life0 self, content_tuning_id: i32, ) -> Pin<Box<dyn Future<Output = Result<ContentTuningFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

ContentTuning row by ID; defaults to Unsupported until a backend implements enemy resolution.

Source

fn get_content_tuning_x_difficulty<'life0, 'dynosaur>( &'life0 self, content_tuning_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<ContentTuningXDifficultyFlat>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Every ContentTuningXDifficulty mapping for a content tuning; defaults to Unsupported until a backend implements enemy resolution.

Source

fn get_content_tuning_x_expected<'life0, 'dynosaur>( &'life0 self, content_tuning_id: i32, ) -> Pin<Box<dyn Future<Output = Result<Vec<ContentTuningXExpectedFlat>, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

Every ContentTuningXExpected mapping; row selection stays in the application layer.

Source

fn get_expected_stat_mod<'life0, 'dynosaur>( &'life0 self, expected_stat_mod_id: i32, ) -> Pin<Box<dyn Future<Output = Result<ExpectedStatModFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

ExpectedStatMod multiplier row by ID.

Source

fn get_challenge_mode_health<'life0, 'dynosaur>( &'life0 self, keystone_level: i32, ) -> Pin<Box<dyn Future<Output = Result<ChallengeModeHealthFlat, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur,

ChallengeModeHealth GameTable scalar by keystone level.

Source

fn decode_traits<'life0, 'life1, 'dynosaur>( &'life0 self, spec_id: i32, trait_string: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<TraitTreeWithSelections, ResolverError>> + Send + 'dynosaur>>
where Self: 'dynosaur, 'life0: 'dynosaur, 'life1: 'dynosaur,

Decode a loadout string against this spec’s tree into a raw selected tree; talent-tree interpretation is the caller’s job.

Implementors§

Source§

impl<DYNOSAUR: DataResolver> ErasedDataResolver for DYNOSAUR