EpisodeTracker

Struct EpisodeTracker 

Source
pub struct EpisodeTracker { /* private fields */ }
Expand description

Tracks episode boundaries within a ring buffer.

Maintains a list of EpisodeMeta entries, invalidating episodes whose data has been overwritten by the ring buffer’s write pointer. Provides efficient sampling of contiguous windows for sequence models.

Implementations§

Source§

impl EpisodeTracker

Source

pub fn new(ring_capacity: usize) -> Self

Create a new episode tracker for a ring buffer with the given capacity.

Source

pub fn notify_push(&mut self, write_pos: usize, done: bool)

Record a push at write_pos. If done, the current episode is finalized.

Source

pub fn invalidate_overwritten(&mut self, write_pos: usize, count: usize)

Remove any episodes whose transitions have been overwritten.

Called when the ring buffer wraps. An episode is invalidated if any of its positions overlap with the region [write_pos, write_pos + count) modulo the ring capacity.

Source

pub fn num_complete_episodes(&self) -> usize

Number of complete episodes currently tracked.

Source

pub fn episodes(&self) -> &[EpisodeMeta]

All currently tracked episodes (complete and in-progress).

Source

pub fn eligible_episodes(&self, min_length: usize) -> Vec<usize>

Indices of episodes long enough for a given sequence length.

Source

pub fn sample_windows( &self, batch_size: usize, seq_len: usize, seed: u64, ) -> Result<Vec<EpisodeWindow>, RloxError>

Sample batch_size windows of seq_len consecutive transitions, each entirely within a single complete episode.

Uses ChaCha8Rng seeded with seed.

Trait Implementations§

Source§

impl Debug for EpisodeTracker

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl EpisodeAware for EpisodeTracker

Source§

fn notify_push(&mut self, write_pos: usize, done: bool)

Notify that a transition was pushed at write_pos with done flag.
Source§

fn invalidate_overwritten(&mut self, write_pos: usize, count: usize)

Invalidate any episodes that overlap with the overwritten region.
Source§

fn num_complete_episodes(&self) -> usize

Number of complete (terminated/truncated) episodes currently tracked.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V