pub enum ClusterMembersState {
Uninit,
Stream(DebugExpr),
Tee(LocationId, LocationId),
}Expand description
Tracks the instantiation state of a ClusterMembers source.
During compile_network, the first ClusterMembers node for a given
(at_location, target_cluster) pair is promoted to Self::Stream and
receives the expression returned by Deploy::cluster_membership_stream.
All subsequent nodes for the same pair are set to Self::Tee so that
during code-gen they simply reference the tee output of the first node
instead of creating a redundant source_stream.
Variants§
Uninit
Not yet instantiated.
Stream(DebugExpr)
The primary instance: holds the stream expression and will emit
source_stream(expr) -> tee() during code-gen.
Tee(LocationId, LocationId)
A secondary instance that references the tee output of the primary.
Stores (at_location_root, target_cluster_location) so that emit_core
can derive the deterministic tee ident without extra state.
Trait Implementations§
Source§impl Clone for ClusterMembersState
impl Clone for ClusterMembersState
Source§fn clone(&self) -> ClusterMembersState
fn clone(&self) -> ClusterMembersState
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClusterMembersState
impl Debug for ClusterMembersState
Auto Trait Implementations§
impl Freeze for ClusterMembersState
impl RefUnwindSafe for ClusterMembersState
impl !Send for ClusterMembersState
impl !Sync for ClusterMembersState
impl Unpin for ClusterMembersState
impl UnsafeUnpin for ClusterMembersState
impl UnwindSafe for ClusterMembersState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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