Skip to main content

LiveInterval

Struct LiveInterval 

Source
pub struct LiveInterval {
    pub buf: BufferId,
    pub def_pos: Option<usize>,
    pub last_use_pos: Option<usize>,
    pub size_bytes: usize,
    pub external: bool,
}
Expand description

The live interval of a buffer in topological-order position space.

The buffer is “live” from the step it is first written (def_pos) to the step at which it is last read (last_use_pos), inclusive.

Fields§

§buf: BufferId

Buffer this interval belongs to.

§def_pos: Option<usize>

Topological position at which the buffer is first defined (written). None means the buffer is an external input (alive from the start).

§last_use_pos: Option<usize>

Topological position at which the buffer is last used (read). None means the buffer is never read (write-only / dead code).

§size_bytes: usize

Buffer size in bytes (copied from BufferDescriptor).

§external: bool

Whether this buffer is externally managed.

Implementations§

Source§

impl LiveInterval

Source

pub fn start(&self) -> usize

Returns the effective start position (0 if never written).

Source

pub fn end(&self) -> usize

Returns the effective end position (start if never read).

Source

pub fn overlaps(&self, other: &Self) -> bool

Returns true if this interval overlaps with other.

Two intervals overlap when neither ends strictly before the other begins.

Source

pub fn is_dead(&self) -> bool

Returns true if the buffer is dead (never read after being written).

Source

pub fn length(&self) -> usize

Returns the length of the live interval in steps.

Trait Implementations§

Source§

impl Clone for LiveInterval

Source§

fn clone(&self) -> LiveInterval

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 Debug for LiveInterval

Source§

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

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

impl PartialEq for LiveInterval

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Eq for LiveInterval

Source§

impl StructuralPartialEq for LiveInterval

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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 = 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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more