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§
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,
Sourcefn 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_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).
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,
Sourcefn 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_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.
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,
Sourcefn 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_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![]).
Sourcefn 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_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![]).
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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<'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.
Sourcefn 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_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.
Sourcefn 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<'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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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 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.
Sourcefn 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,
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.