pub struct DenseBuffer {
chunks: Vec<SlotChunk>,
pub(super) layout: Arc<FrozenBufferLayout>,
}Expand description
Flat byte buffer holding all runtime rotation state for zero-allocation evaluation.
Fields§
§chunks: Vec<SlotChunk>§layout: Arc<FrozenBufferLayout>Implementations§
Source§impl DenseBuffer
impl DenseBuffer
pub(crate) fn aura_at(&self, handle: AuraSlotHandle) -> &AuraSlot
Sourcepub(crate) fn activate_aura_at(
&mut self,
handle: AuraSlotHandle,
expires_at: f64,
base_duration: f64,
stacks: i32,
max_stacks: i32,
)
pub(crate) fn activate_aura_at( &mut self, handle: AuraSlotHandle, expires_at: f64, base_duration: f64, stacks: i32, max_stacks: i32, )
Replace an aura slot with a fresh semantic activation.
Sourcepub(crate) fn refresh_aura_at(
&mut self,
handle: AuraSlotHandle,
expires_at: Option<f64>,
stacks: i32,
)
pub(crate) fn refresh_aura_at( &mut self, handle: AuraSlotHandle, expires_at: Option<f64>, stacks: i32, )
Refresh the expiry and stacks of an occupied aura slot.
Sourcepub(crate) fn expire_aura_at(&mut self, handle: AuraSlotHandle)
pub(crate) fn expire_aura_at(&mut self, handle: AuraSlotHandle)
Clear one aura slot for semantic expiry or reset.
Sourcepub(crate) fn set_aura_stacks_at(&mut self, handle: AuraSlotHandle, stacks: i32)
pub(crate) fn set_aura_stacks_at(&mut self, handle: AuraSlotHandle, stacks: i32)
Replace stacks on an occupied aura slot.
Sourcepub(crate) fn set_aura_expiry_at(
&mut self,
handle: AuraSlotHandle,
expires_at: f64,
)
pub(crate) fn set_aura_expiry_at( &mut self, handle: AuraSlotHandle, expires_at: f64, )
Replace expiry metadata on an occupied aura slot.
Sourcepub(crate) fn set_aura_schedule_at(
&mut self,
handle: AuraSlotHandle,
next_tick: f64,
tick_interval: f64,
base_tick_interval: f64,
time_rate_multiplier: f64,
remaining_ticks: i32,
)
pub(crate) fn set_aura_schedule_at( &mut self, handle: AuraSlotHandle, next_tick: f64, tick_interval: f64, base_tick_interval: f64, time_rate_multiplier: f64, remaining_ticks: i32, )
Replace periodic scheduling metadata on an occupied aura slot.
Sourcepub(crate) fn set_aura_next_tick_at(
&mut self,
handle: AuraSlotHandle,
next_tick: f64,
)
pub(crate) fn set_aura_next_tick_at( &mut self, handle: AuraSlotHandle, next_tick: f64, )
Replace only the next periodic deadline on an occupied aura slot.
Sourcepub(crate) fn set_aura_time_rate_at(
&mut self,
handle: AuraSlotHandle,
multiplier: f64,
)
pub(crate) fn set_aura_time_rate_at( &mut self, handle: AuraSlotHandle, multiplier: f64, )
Replace only the aura time-rate multiplier on an occupied aura slot.
Sourcepub(crate) fn set_aura_snapshot_at(
&mut self,
handle: AuraSlotHandle,
has_snapshot: i32,
attack_power: f64,
spell_power: f64,
critical_chance: f64,
versatility: f64,
mastery_multiplier: f64,
damage_multiplier: f64,
)
pub(crate) fn set_aura_snapshot_at( &mut self, handle: AuraSlotHandle, has_snapshot: i32, attack_power: f64, spell_power: f64, critical_chance: f64, versatility: f64, mastery_multiplier: f64, damage_multiplier: f64, )
Replace snapshot metadata on an occupied aura slot.
Sourcepub(crate) fn transfer_aura_at(
&mut self,
handle: AuraSlotHandle,
transfer: AuraTransferState,
)
pub(crate) fn transfer_aura_at( &mut self, handle: AuraSlotHandle, transfer: AuraTransferState, )
Install an opaque aura transfer into its destination slot.
Source§impl DenseBuffer
impl DenseBuffer
pub(crate) fn new(layout: Arc<FrozenBufferLayout>) -> Self
pub fn layout_fingerprint(&self) -> LayoutFingerprint
Sourcepub fn clear_history(&mut self)
pub fn clear_history(&mut self)
Clear every history slot’s previous-cast flags (prev_gcd / prev_off_gcd).
Sourcepub fn reset_and_defaults(&mut self)
pub fn reset_and_defaults(&mut self)
Zero the buffer and write standalone field defaults.
pub(crate) fn as_mut_ptr(&mut self) -> *mut u8
Sourcepub(crate) fn bytes(&self) -> &[u8] ⓘ
pub(crate) fn bytes(&self) -> &[u8] ⓘ
Active byte view truncated to the schema-declared byte_len.
Sourcepub(crate) fn bytes_mut(&mut self) -> &mut [u8] ⓘ
pub(crate) fn bytes_mut(&mut self) -> &mut [u8] ⓘ
Active mutable byte view. See Self::bytes.
fn slot_ref<T>(&self, base: ByteOffset) -> &Twhere
T: Pod,
fn slot_mut<T>(&mut self, base: ByteOffset) -> &mut Twhere
T: Pod,
fn populate_standalone_defaults(&mut self)
pub(crate) fn player(&self) -> &PlayerSlot
pub(crate) fn player_mut(&mut self) -> &mut PlayerSlot
pub(crate) fn combat(&self) -> &CombatSlot
pub(crate) fn combat_mut(&mut self) -> &mut CombatSlot
pub(crate) fn pet(&self) -> &PetSlot
pub(crate) fn pet_mut(&mut self) -> &mut PetSlot
pub(crate) fn spell_at(&self, handle: SpellSlotHandle) -> &SpellSlot
pub(crate) fn spell_mut_at(&mut self, handle: SpellSlotHandle) -> &mut SpellSlot
pub(crate) fn aura_projection_at( &self, handle: AuraProjectionSlotHandle, ) -> &AuraSlot
pub(crate) fn aura_projection_mut_at( &mut self, handle: AuraProjectionSlotHandle, ) -> &mut AuraSlot
pub(crate) fn cooldown_at(&self, handle: CooldownSlotHandle) -> &CooldownSlot
pub(crate) fn cooldown_mut_at( &mut self, handle: CooldownSlotHandle, ) -> &mut CooldownSlot
pub(crate) fn history_at(&self, handle: HistorySlotHandle) -> &HistorySlot
pub(crate) fn history_mut_at( &mut self, handle: HistorySlotHandle, ) -> &mut HistorySlot
pub(crate) fn resource_at(&self, handle: ResourceSlotHandle) -> &ResourceSlot
pub(crate) fn resource_mut_at( &mut self, handle: ResourceSlotHandle, ) -> &mut ResourceSlot
pub(crate) fn unit_at(&self, handle: UnitSlotHandle) -> &UnitSlot
pub(crate) fn unit_mut_at(&mut self, handle: UnitSlotHandle) -> &mut UnitSlot
pub(crate) fn talent_at(&self, handle: TalentSlotHandle) -> &TalentSlot
pub(crate) fn talent_mut_at( &mut self, handle: TalentSlotHandle, ) -> &mut TalentSlot
pub(crate) fn hero_tree_at(&self, handle: HeroTreeSlotHandle) -> &HeroTreeSlot
pub(crate) fn hero_tree_mut_at( &mut self, handle: HeroTreeSlotHandle, ) -> &mut HeroTreeSlot
pub(crate) fn item_at(&self, handle: ItemSlotHandle) -> &ItemSlot
pub(crate) fn item_mut_at(&mut self, handle: ItemSlotHandle) -> &mut ItemSlot
pub(crate) fn swing_at(&self, handle: SwingSlotHandle) -> &SwingSlot
pub(crate) fn swing_mut_at(&mut self, handle: SwingSlotHandle) -> &mut SwingSlot
pub(crate) fn equipment_at(&self, handle: EquipmentSlotHandle) -> &EquipmentSlot
pub(crate) fn equipment_mut_at( &mut self, handle: EquipmentSlotHandle, ) -> &mut EquipmentSlot
pub(crate) fn set_bonus_at(&self, handle: SetBonusSlotHandle) -> &SetBonusSlot
pub(crate) fn set_bonus_mut_at( &mut self, handle: SetBonusSlotHandle, ) -> &mut SetBonusSlot
pub(crate) fn weapon_imbue_at( &self, handle: WeaponImbueSlotHandle, ) -> &WeaponImbueSlot
pub(crate) fn weapon_imbue_mut_at( &mut self, handle: WeaponImbueSlotHandle, ) -> &mut WeaponImbueSlot
pub fn cooldown(&self, key: SpellIdx) -> Option<&CooldownSlot>
pub fn cooldown_mut(&mut self, key: SpellIdx) -> Option<&mut CooldownSlot>
pub fn aura(&self, key: AuraKey) -> Option<&AuraSlot>
pub fn aura_projection(&self, key: AuraProjectionKey) -> Option<&AuraSlot>
pub fn aura_projection_mut( &mut self, key: AuraProjectionKey, ) -> Option<&mut AuraSlot>
pub fn resource(&self, key: ResourceType) -> Option<&ResourceSlot>
pub fn resource_mut(&mut self, key: ResourceType) -> Option<&mut ResourceSlot>
pub fn spell(&self, key: SpellIdx) -> Option<&SpellSlot>
pub fn spell_mut(&mut self, key: SpellIdx) -> Option<&mut SpellSlot>
pub fn history(&self, key: SpellIdx) -> Option<&HistorySlot>
pub fn history_mut(&mut self, key: SpellIdx) -> Option<&mut HistorySlot>
pub fn talent(&self, key: &str) -> Option<&TalentSlot>
pub fn talent_mut(&mut self, key: &str) -> Option<&mut TalentSlot>
pub fn hero_tree(&self, key: &str) -> Option<&HeroTreeSlot>
pub fn hero_tree_mut(&mut self, key: &str) -> Option<&mut HeroTreeSlot>
pub fn item(&self, key: &str) -> Option<&ItemSlot>
pub fn item_mut(&mut self, key: &str) -> Option<&mut ItemSlot>
pub fn swing(&self, key: &str) -> Option<&SwingSlot>
pub fn swing_mut(&mut self, key: &str) -> Option<&mut SwingSlot>
pub fn equipment(&self, key: &str) -> Option<&EquipmentSlot>
pub fn equipment_mut(&mut self, key: &str) -> Option<&mut EquipmentSlot>
pub fn set_bonus(&self, key: &str) -> Option<&SetBonusSlot>
pub fn set_bonus_mut(&mut self, key: &str) -> Option<&mut SetBonusSlot>
pub fn unit(&self, key: &str) -> Option<&UnitSlot>
pub fn unit_mut(&mut self, key: &str) -> Option<&mut UnitSlot>
pub fn weapon_imbue(&self, key: &str) -> Option<&WeaponImbueSlot>
pub fn weapon_imbue_mut(&mut self, key: &str) -> Option<&mut WeaponImbueSlot>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DenseBuffer
impl RefUnwindSafe for DenseBuffer
impl Send for DenseBuffer
impl Sync for DenseBuffer
impl Unpin for DenseBuffer
impl UnsafeUnpin for DenseBuffer
impl UnwindSafe for DenseBuffer
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