Tick

Struct Tick 

Source
pub struct Tick<L> { /* private fields */ }
Expand description

Marks the stream as being inside the single global clock domain.

Implementations§

Source§

impl<'a, L> Tick<L>
where L: Location<'a>,

Source

pub fn outer(&self) -> &L

Source

pub fn spin_batch( &self, batch_size: impl QuotedWithContext<'a, usize, L> + Copy + 'a, ) -> Stream<(), Self, Bounded, TotalOrder, ExactlyOnce>
where L: NoTick,

Source

pub fn singleton<T>( &self, e: impl QuotedWithContext<'a, T, Tick<L>>, ) -> Singleton<T, Self, Bounded>
where T: Clone,

Source

pub fn none<T>(&self) -> Optional<T, Self, Bounded>

Creates an Optional which has a null value on every tick.

§Example
let tick = process.tick();
let optional = tick.none::<i32>();
optional.unwrap_or(tick.singleton(q!(123)))
// 123
Source

pub fn optional_first_tick<T: Clone>( &self, e: impl QuotedWithContext<'a, T, Tick<L>>, ) -> Optional<T, Self, Bounded>

Creates an Optional which will have the provided static value on the first tick, and be null on all subsequent ticks.

This is useful for bootstrapping stateful computations which need an initial value.

§Example
let tick = process.tick();
// ticks are lazy by default, forces the second tick to run
tick.spin_batch(q!(1)).all_ticks().for_each(q!(|_| {}));
let optional = tick.optional_first_tick(q!(5));
optional.unwrap_or(tick.singleton(q!(123))).all_ticks()
// 5, 123, 123, 123, ...
Source

pub fn forward_ref<S>(&self) -> (ForwardHandle<'a, S>, S)
where S: CycleCollection<'a, ForwardRef, Location = Self>, L: NoTick,

Source

pub fn cycle<S>(&self) -> (TickCycleHandle<'a, S>, S)
where S: CycleCollection<'a, TickCycle, Location = Self> + DeferTick, L: NoTick,

Source

pub fn cycle_with_initial<S>(&self, initial: S) -> (TickCycleHandle<'a, S>, S)
where S: CycleCollectionWithInitial<'a, TickCycle, Location = Self>,

Trait Implementations§

Source§

impl<L: Clone> Clone for Tick<L>

Source§

fn clone(&self) -> Tick<L>

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<'a, L> Location<'a> for Tick<L>
where L: Location<'a>,

Source§

type Root = <L as Location<'a>>::Root

Source§

fn root(&self) -> Self::Root

Source§

fn try_tick(&self) -> Option<Tick<Self>>

Source§

fn id(&self) -> LocationId

Source§

fn singleton<T>( &self, e: impl QuotedWithContext<'a, T, Self>, ) -> Singleton<T, Self, Unbounded>
where T: Clone, Self: Sized,

Constructs a Singleton materialized at this location with the given static value. Read more
Source§

impl<'a, L> NoAtomic for Tick<L>
where L: Location<'a>,

Auto Trait Implementations§

§

impl<L> Freeze for Tick<L>
where L: Freeze,

§

impl<L> RefUnwindSafe for Tick<L>
where L: RefUnwindSafe,

§

impl<L> Send for Tick<L>
where L: Send,

§

impl<L> Sync for Tick<L>
where L: Sync,

§

impl<L> Unpin for Tick<L>
where L: Unpin,

§

impl<L> UnwindSafe for Tick<L>
where L: 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> 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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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
§

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

§

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
§

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

Source§

fn iter_to_sink_build(self) -> SendIterBuild<Self>
where Self: Sized + Iterator,

Starts a SinkBuild adaptor chain to send all items from self as an Iterator.
Source§

fn stream_to_sink_build(self) -> SendStreamBuild<Self>
where Self: Sized + Stream,

Starts a SinkBuild adaptor chain to send all items from self as a [Stream].
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

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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