pub struct ProjectWire {
pub project: ProjectView,
pub work: WorkState,
pub would_bind: bool,
pub chip: Option<SessionChipInfo>,
}Expand description
One project row: the project, and the per-row reads the home draws it from.
The cells beside the project are what the row states, and each is reached
from the ROW rather than from a seat: a home row is a project, and a
project is a row whether or not anything has started it. The board’s own
detail - rows, schedules and connector sets - is ProjectBoardWire’s
(#2517).
Fields§
§project: ProjectView§work: WorkStateThe branch and the count for the project’s own tree.
Keyed by the project’s LEAD slot, which exists for every declared
project whether or not a session has opened it, and read at the
project’s own path - so a row’s cell is filled for a project nobody
has started, which is the whole point of the cell. That is also why it
is not the read a SEAT draws: a worker’s own tree is AgentWire::work,
and this one is the project’s own path whichever seat is asking.
This is the shared cache the transport holds, so several clients subscribing do not multiply git invocations: the cache is what makes the per-row cost one scan’s rather than N times it.
would_bind: boolWhether a spawn in this project would find an account. Read beside
project.has_model, which is what tells the two reasons a spawn cannot
run apart.
chip: Option<SessionChipInfo>The account this project’s row chips, and its state.
A view draws the chip from Roster::chip_for, which derives the
state from the project’s model and the account pool. has_model is not
enough to derive it from, so a client could draw the row and not the
chip it carries.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ProjectWire
impl<'de> Deserialize<'de> for ProjectWire
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ProjectWire
impl RefUnwindSafe for ProjectWire
impl Send for ProjectWire
impl Sync for ProjectWire
impl Unpin for ProjectWire
impl UnsafeUnpin for ProjectWire
impl UnwindSafe for ProjectWire
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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