Struct AddLyquid
pub struct AddLyquid {
pub id: LyquidID,
pub high_mark: usize,
pub low_mark: usize,
pub consumer: Recipient<SequenceItem>,
}Expand description
Start sequencing slots for the given lyquid.
Always make sure all dependencies have already been added before a lyquid is added through this request, otherwise liveness is not guaranteed.
When a lyquid sequence is added, there are two kinds of possible slots that matter since it was last removed:
- Inbound Calls: Any other lyquids’ execution that directly or indirectly calls this lyquid.
- Outbound Calls: Any execution for this lyquid that can direclty or indirectly call others.
For inbound calls, these lyquids must have been removed before this lyquid was removed and added back after this lyquid is added back, so no slots are missed.
For outbound calls, those called lyquids must have been added before this lyquid is added. Before this lyquid is added, the calls are retrieved from the archival node for them so they can run properly. After this lyquid is added, the calls are directly injected by this lyquid locally.
TODO: We should perhaps allow adding a “bulk” of lyquids that includes all dependencies, before starting the their backend slots retrieval and execution, so there is no need to consult the archival node in the middle of adding the entire dependencies.
Fields§
§id: LyquidID§high_mark: usize§low_mark: usize§consumer: Recipient<SequenceItem>Trait Implementations§
Auto Trait Implementations§
impl Freeze for AddLyquid
impl !RefUnwindSafe for AddLyquid
impl Send for AddLyquid
impl Sync for AddLyquid
impl Unpin for AddLyquid
impl !UnwindSafe for AddLyquid
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
§impl<'de, F, T> Deserialize<'de, As<F>> for Twhere
F: BareFormula + ?Sized,
T: Deserialize<'de, F>,
impl<'de, F, T> Deserialize<'de, As<F>> for Twhere
F: BareFormula + ?Sized,
T: Deserialize<'de, F>,
§fn deserialize(deserializer: Deserializer<'de>) -> Result<T, DeserializeError>
fn deserialize(deserializer: Deserializer<'de>) -> Result<T, DeserializeError>
§fn deserialize_in_place(
&mut self,
deserializer: Deserializer<'de>,
) -> Result<(), DeserializeError>
fn deserialize_in_place( &mut self, deserializer: Deserializer<'de>, ) -> Result<(), DeserializeError>
self with data from the input. Read more§impl<'de, F, T> Deserialize<'de, Ref<F>> for T
impl<'de, F, T> Deserialize<'de, Ref<F>> for T
§fn deserialize(de: Deserializer<'de>) -> Result<T, DeserializeError>
fn deserialize(de: Deserializer<'de>) -> Result<T, DeserializeError>
§fn deserialize_in_place(
&mut self,
de: Deserializer<'de>,
) -> Result<(), DeserializeError>
fn deserialize_in_place( &mut self, de: Deserializer<'de>, ) -> Result<(), DeserializeError>
self with data from the input. Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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