pub struct Window<'c, 'a, D: GraphDriver> { /* private fields */ }Expand description
A capture window on one stream: warming up before it opens, opening it, and instantiating what it recorded.
The three steps are ordered and the stream refuses them out of order (see
StreamCapture); this type is where each
one’s shared half lives.
Implementations§
Source§impl<'c, 'a, D: GraphDriver> Window<'c, 'a, D>
impl<'c, 'a, D: GraphDriver> Window<'c, 'a, D>
Sourcepub fn on(command: &'c mut Command<'a, D>) -> Self
pub fn on(command: &'c mut Command<'a, D>) -> Self
The capture window on the stream command is issued on.
Sourcepub fn prepare(&mut self, stream_id: StreamId) -> Result<(), ServerError>
pub fn prepare(&mut self, stream_id: StreamId) -> Result<(), ServerError>
Start the warmup run, before the window opens.
The outdated pools of every stream are emptied first: the recording may touch memory any stream owns, every page it touches is guarded for the graph’s life, and a guarded page can no longer be relocated off.
§Errors
The stream’s refusal, when it is not in a state a window can open from.
Sourcepub fn begin(&mut self) -> Result<(), ServerError>
pub fn begin(&mut self) -> Result<(), ServerError>
Open the window: from here the driver records every launch issued on this stream until the window closes.
§Errors
The driver’s refusal to begin recording, with the stream left as it was found — capture state back to none — so the whole prepare-then-open sequence can be retried.
Sourcepub fn instantiate(
&mut self,
stream_id: StreamId,
id: GraphId,
) -> Result<Graph<D>, Refused>
pub fn instantiate( &mut self, stream_id: StreamId, id: GraphId, ) -> Result<Graph<D>, Refused>
Close the window and instantiate what it recorded into a graph
registered under id.
The window leaves capture mode first, so none of the paths below can wedge the stream in it — they re-enable the deferred fenced flushes on the way out. A window the caller does not own is closed and torn down all the same, since nobody else is coming back to close it; only its owner gets a graph out of it.
§Errors
Refused, which every failure here becomes — the driver’s refusal to
close or instantiate, a recording an unreadable input left incomplete,
an allocation inside the window, or no window at all. It carries the
memory the caller now has to claim, empty when there was nothing to
close.
Auto Trait Implementations§
impl<'c, 'a, D> !RefUnwindSafe for Window<'c, 'a, D>
impl<'c, 'a, D> !UnwindSafe for Window<'c, 'a, D>
impl<'c, 'a, D> Freeze for Window<'c, 'a, D>
impl<'c, 'a, D> Send for Window<'c, 'a, D>
impl<'c, 'a, D> Sync for Window<'c, 'a, D>
impl<'c, 'a, D> Unpin for Window<'c, 'a, D>
impl<'c, 'a, D> UnsafeUnpin for Window<'c, 'a, D>where
&'c mut Command<'a, D>: UnsafeUnpin,
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
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