pub struct PreflightRequest {
pub bundle_id: String,
pub target_id: String,
pub project_directory: Option<PathBuf>,
pub reply: Sender<Result<PreflightNew, PreflightFailure>>,
}Expand description
A phone acknowledging how far it has read a conversation.
This deliberately is not a ControllerAction: the viewer posts it after
every conversation fetch, and a fetch follows every revision. Routing it
through the action pipeline made each receipt reload the controller, bump
the revision and broadcast a snapshot, which triggered the next fetch, so
viewer and controller never went quiet; it also consumed the session’s
single action slot, intermittently rejecting real actions. A receipt
therefore travels on its own channel and only persists one cursor field.
A phone asking whether a session it is about to create would launch
cleanly, and what it should be warned about first.
This is not a ControllerAction: it starts nothing, it takes no session
slot, and it must answer before the person has decided anything. It also
needs the controller, because whether a repository has uncommitted changes
is a fact about the disk rather than about the projection.
Fields§
§bundle_id: String§target_id: String§project_directory: Option<PathBuf>§reply: Sender<Result<PreflightNew, PreflightFailure>>Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for PreflightRequest
impl !UnwindSafe for PreflightRequest
impl Freeze for PreflightRequest
impl Send for PreflightRequest
impl Sync for PreflightRequest
impl Unpin for PreflightRequest
impl UnsafeUnpin for PreflightRequest
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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