Skip to main content

Delta0

Struct Delta0 

Source
pub struct Delta0<D> { /* private fields */ }
Expand description

delta_0 DBSP operator.

delta_0 is an import operator, i.e., an operator that makes the contents of a parent stream available inside the child circuit. At the first nested clock cycle, it reads and outputs a value from the parent stream. During subsequent nested clock cycles, it outputs zero.

§Examples

Given a parent stream

[1, 2, 3, 4, ...]

the delta_0 operator produces the following nested stream (each row in the matrix represents a nested clock epoch):

┌           ┐
│1 0 0 0 ...│
│2 0 0 0 ...│
│3 0 0 0 ...|
|4 0 0 0 ...|
└           ┘

Implementations§

Source§

impl<D> Delta0<D>

Source

pub fn new() -> Self

Trait Implementations§

Source§

impl<D> Default for Delta0<D>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<D> ImportOperator<D, D> for Delta0<D>
where D: HasZero + Clone + 'static,

Source§

fn input_preference(&self) -> OwnershipPreference

Ownership preference on the operator’s input stream (see OwnershipPreference).

Source§

fn import(&mut self, val: &D)

Consumes a value from the parent stream by reference. Read more
Source§

fn import_owned(&mut self, val: D)

Consumes a value from the parent stream by value.
Source§

async fn eval(&mut self) -> D

Invoked once per nested clock cycle to write a value to the output stream.
Source§

impl<D> Operator for Delta0<D>
where D: Data,

Source§

fn name(&self) -> Cow<'static, str>

Human-readable operator name for debugging purposes.
Source§

fn fixedpoint(&self, scope: Scope) -> bool

Check if the operator is in a stable state. Read more
Source§

fn location(&self) -> OperatorLocation

The location the operator was created at
Source§

fn init(&mut self, _global_id: &GlobalNodeId)

Initialize the operator
Source§

fn metadata(&self, _meta: &mut OperatorMeta)

Collects metadata about the current operator
Source§

fn clock_start(&mut self, _scope: Scope)

Notify the operator about the start of a new clock epoch. Read more
Source§

fn clock_end(&mut self, _scope: Scope)

Source§

fn is_async(&self) -> bool

Returns true if self is an asynchronous operator. Read more
Source§

fn is_input(&self) -> bool

Returns true if self is an input operator. Read more
Source§

fn ready(&self) -> bool

Returns true if self has received all required external inputs and is ready to run. Read more
Source§

fn register_ready_callback<F>(&mut self, _cb: F)
where F: Fn() + Send + Sync + 'static,

Register callback to be invoked when an asynchronous operator becomes ready. Read more
Source§

fn checkpoint( &mut self, base: &StoragePath, persistent_id: Option<&str>, files: &mut Vec<Arc<dyn FileCommitter>>, ) -> Result<(), Error>

Instructs the operator to checkpoint its state to persistent storage in directory base. Any files that the operator creates should have persistent_id in their names to keep them unique. Read more
Source§

fn restore( &mut self, base: &StoragePath, persistent_id: Option<&str>, ) -> Result<(), Error>

Instruct the operator to restore its state from persistent storage in directory base, using persistent_id to find its files. Read more
Source§

fn clear_state(&mut self) -> Result<(), Error>

Clear the operator’s state.
Source§

fn start_replay(&mut self) -> Result<(), Error>

Start replaying the operator’s state to the replay stream. Read more
Source§

fn is_replay_complete(&self) -> bool

Check if the operator has finished replaying its state. Read more
Source§

fn end_replay(&mut self) -> Result<(), Error>

Cleanup any state needed for replay and prepare the operator for normal operation. Read more
Source§

fn start_transaction(&mut self)

Notify the operator about start of a transaction. Read more
Source§

fn flush(&mut self)

Notifies the operator that all of its predecessors have produced all outputs for the current transaction. Read more
Source§

fn is_flush_complete(&self) -> bool

Invoked after flush after each eval call to check if all outputs have been produced. Read more
Source§

fn flush_progress(&self) -> Option<Position>

Returns the current progress of the operator in processing the current transaction. Read more

Auto Trait Implementations§

§

impl<D> Freeze for Delta0<D>
where D: Freeze,

§

impl<D> RefUnwindSafe for Delta0<D>
where D: RefUnwindSafe,

§

impl<D> Send for Delta0<D>
where D: Send,

§

impl<D> Sync for Delta0<D>
where D: Sync,

§

impl<D> Unpin for Delta0<D>
where D: Unpin,

§

impl<D> UnsafeUnpin for Delta0<D>
where D: UnsafeUnpin,

§

impl<D> UnwindSafe for Delta0<D>
where D: UnwindSafe,

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

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> AsAny for T
where T: 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

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<F, W, T, D> Deserialize<With<T, W>, D> for F
where W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,

Source§

fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>

Deserializes using the given deserializer
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> 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
Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Gets the layout of the type.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

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

impl<T> Pointee for T

Source§

type Metadata = ()

The type for metadata in pointers and references to Self.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The type for metadata in pointers and references to Self.
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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

impl<T> ErasedDestructor for T
where T: 'static,