Skip to main content

ChunkResult

Enum ChunkResult 

Source
pub enum ChunkResult {
    Filled(usize),
    Starved,
    End,
}
Expand description

Result returned by the fill callback indicating how the buffer was filled.

This enum allows the callback to communicate three distinct states:

  • Successfully filled some number of points
  • Temporarily unable to provide data (underrun policy applies)
  • Stream should end gracefully

§Filled(0) Semantics

  • If target_points == 0: Buffer is full, nothing needed. This is fine.
  • If target_points > 0: We needed points but got none. Treated as Starved.

Variants§

§

Filled(usize)

Wrote n points to the buffer.

n must be <= buffer.len(). Partial fills (n < min_points) are accepted without padding - useful when content is legitimately ending. Return End on the next call to signal completion.

§

Starved

No data available right now.

Underrun policy is applied (repeat last chunk or blank). Stream continues; callback will be called again when buffer needs filling.

§

End

Stream is finished. Shutdown sequence:

  1. Stop calling callback
  2. Let queued points drain (play out)
  3. Blank/park the laser at last position
  4. Return from stream() with RunExit::ProducerEnded

Trait Implementations§

Source§

impl Clone for ChunkResult

Source§

fn clone(&self) -> ChunkResult

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ChunkResult

Source§

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

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

impl PartialEq for ChunkResult

Source§

fn eq(&self, other: &ChunkResult) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ChunkResult

Source§

impl Eq for ChunkResult

Source§

impl StructuralPartialEq for ChunkResult

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

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.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,