pub struct Driver<D: Document> {
pub runtime: Runtime<D>,
/* private fields */
}Expand description
Drives a Runtime headless. See the module docs.
Fields§
§runtime: Runtime<D>Implementations§
Source§impl<D: Document> Driver<D>
impl<D: Document> Driver<D>
Sourcepub fn into_runtime(self) -> Runtime<D>
pub fn into_runtime(self) -> Runtime<D>
Stop driving; the runtime is handed back (e.g. to Runtime::abandon it).
pub fn ctx(&self) -> &Context
pub fn set_screen(&mut self, width: f32, height: f32)
Sourcepub fn push_event(&mut self, e: Event)
pub fn push_event(&mut self, e: Event)
Queue raw input for the next frame (it also wakes the loop).
Sourcepub fn set_screenshots(&mut self, deliver: bool)
pub fn set_screenshots(&mut self, deliver: bool)
Whether screenshots are delivered (on by default). Off, the loop behaves like a window that is covered or on a locked screen: capture requests are dropped.
Minimize the window (or show it again). Hidden, a frame runs Runtime::logic with no
egui pass, the way eframe treats a minimized or covered window, then the runtime’s
Runtime::hidden_pass for pending debugger work; other input waits for the next shown
frame. A raise from the app (Focus, Minimized(false), Visible(true)) shows it again.
Whether the window is hidden (Driver::set_hidden).
Sourcepub fn request_close(&mut self)
pub fn request_close(&mut self)
Ask to close the window, as the window’s close button does.
Sourcepub fn frame(&mut self) -> FullOutput
pub fn frame(&mut self) -> FullOutput
Run one frame now, whether or not one was asked for.
Sourcepub fn advance(&mut self, secs: f64) -> u64
pub fn advance(&mut self, secs: f64) -> u64
Let secs of virtual time pass, running every frame that is asked for (at most one per
1/120 s, like a display would). Returns the frames run.
Sourcepub fn settle(&mut self, max: u64) -> u64
pub fn settle(&mut self, max: u64) -> u64
Run frames until none is asked for (at most max); returns how many ran. Timers further
than horizon seconds away do not count as pending.
Sourcepub fn request(&mut self, method: &str, params: Value) -> Reply
pub fn request(&mut self, method: &str, params: Value) -> Reply
Send a control request (as the control port would) and run frames until it is answered: one frame for the request, then only the frames something asks for, on the virtual clock (a request that needs frames nobody asks for is reported, not papered over by polling).
Auto Trait Implementations§
impl<D> !RefUnwindSafe for Driver<D>
impl<D> !Send for Driver<D>
impl<D> !Sync for Driver<D>
impl<D> !UnwindSafe for Driver<D>
impl<D> Freeze for Driver<D>
impl<D> Unpin for Driver<D>
impl<D> UnsafeUnpin for Driver<D>where
Runtime<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>. Box<dyn Any> can
then be further downcast into Box<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>. Rc<Any> 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> 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