Skip to main content

TranscodeProgress

Struct TranscodeProgress 

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

Counts how much work a crate::Transcoder completed before returning.

Implementations§

Source§

impl TranscodeProgress

Source

pub const fn new(status: TranscodeStatus, read: usize, written: usize) -> Self

Creates a progress value.

§Parameters
  • status: The reason conversion stopped.
  • read: Number of input units consumed from the call’s input index.
  • written: Number of output units written from the call’s output index.
§Returns

Returns a progress value carrying the supplied counters.

Source

pub const fn complete(read: usize, written: usize) -> Self

Creates a completed progress value.

§Parameters
  • read: Number of consumed input units.
  • written: Number of produced output units.
§Returns

Returns a progress value whose status is TranscodeStatus::Complete.

Source

pub const fn need_input( required: NonZeroUsize, read: usize, written: usize, ) -> Self

Creates progress that stopped because more input is needed.

§Parameters
  • required: Current minimum total input units required before retrying from the current input position. A later retry may raise this lower bound.
  • read: Number of consumed input units.
  • written: Number of produced output units.
§Returns

Returns a progress value with TranscodeStatus::NeedInput.

Source

pub const fn need_output( required: NonZeroUsize, read: usize, written: usize, ) -> Self

Creates progress that stopped because more output capacity is needed.

§Parameters
  • required: Total output units required from the current output position.
  • read: Number of consumed input units.
  • written: Number of produced output units.
§Returns

Returns a progress value with TranscodeStatus::NeedOutput.

Source

pub const fn status(self) -> TranscodeStatus

Returns the status that stopped conversion.

§Returns

Returns the stored TranscodeStatus.

Source

pub const fn is_complete(self) -> bool

Returns whether conversion consumed all currently supplied input.

§Returns

Returns true when the stored status is TranscodeStatus::Complete.

Source

pub const fn is_need_input(self) -> bool

Returns whether conversion stopped because more input is needed.

§Returns

Returns true when the stored status is TranscodeStatus::NeedInput.

Source

pub const fn is_need_output(self) -> bool

Returns whether conversion stopped because more output capacity is needed.

§Returns

Returns true when the stored status is TranscodeStatus::NeedOutput.

Source

pub const fn read(self) -> usize

Returns the number of input units consumed by the call.

§Returns

Returns a count relative to the input index passed to the conversion call.

Source

pub const fn written(self) -> usize

Returns the number of output units written by the call.

§Returns

Returns a count relative to the output index passed to the conversion call.

Source

pub fn validate( &self, input_index: usize, available_input: usize, output_index: usize, available_output: usize, ) -> Result<(), TranscodeContractError>

Validates this progress against the call bounds supplied to a transcoder.

Buffered drivers should call this before using Self::read or Self::written to advance unchecked input or output cursors. The method checks relative counters, unsatisfied NeedInput / NeedOutput requirements, and the Complete invariant that all visible input was consumed.

This is a contract checker, not a semantic recovery policy. It performs the same validation in every build profile. Drivers that advance unsafe cursors may convert failures into their own error type, while convenience helpers may assert that validation succeeds. Custom crate::Transcoder implementations must therefore return progress that satisfies the documented contract in all builds.

§Parameters
  • input_index: Input index originally passed to the transcoder.
  • available_input: Number of input units visible from input_index.
  • output_index: Output index originally passed to the transcoder.
  • available_output: Number of output slots visible from output_index.
§Returns

Returns Ok(()) when progress is internally consistent with the supplied call bounds.

§Errors

Returns TranscodeContractError when a custom transcoder reports counters or missing-capacity requirements that do not match the buffers supplied by the caller.

Trait Implementations§

Source§

impl Clone for TranscodeProgress

Source§

fn clone(&self) -> TranscodeProgress

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for TranscodeProgress

Source§

impl Debug for TranscodeProgress

Source§

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

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

impl Eq for TranscodeProgress

Source§

impl PartialEq for TranscodeProgress

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for TranscodeProgress

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<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> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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.