Struct deno_core::JsRuntimeInspector
source · [−]pub struct JsRuntimeInspector { /* private fields */ }
Expand description
This structure is used responsible for providing inspector interface
to the JsRuntime
.
It stores an instance of v8::inspector::V8Inspector
and additionally
implements v8::inspector::V8InspectorClientImpl
.
After creating this structure it’s possible to connect multiple sessions to the inspector, in case of Deno it’s either: a “websocket session” that provides integration with Chrome Devtools, or an “in-memory session” that is used for REPL or converage collection.
Implementations
sourceimpl JsRuntimeInspector
impl JsRuntimeInspector
pub fn new(isolate: &mut OwnedIsolate, context: Global<Context>) -> Box<Self>
pub fn has_active_sessions(&self) -> bool
sourcepub fn wait_for_session_and_break_on_next_statement(&mut self)
pub fn wait_for_session_and_break_on_next_statement(&mut self)
This function blocks the thread until at least one inspector client has established a websocket connection.
After that, it instructs V8 to pause at the next statement. Frontend must send “Runtime.runIfWaitingForDebugger” message to resume execution.
sourcepub fn get_session_sender(&self) -> UnboundedSender<InspectorSessionProxy>
pub fn get_session_sender(&self) -> UnboundedSender<InspectorSessionProxy>
Obtain a sender for proxy channels.
sourcepub fn add_deregister_handler(&mut self) -> Receiver<()>
pub fn add_deregister_handler(&mut self) -> Receiver<()>
Create a channel that notifies the frontend when inspector is dropped.
NOTE: Only a single handler is currently available.
sourcepub fn create_local_session(&self) -> LocalInspectorSession
pub fn create_local_session(&self) -> LocalInspectorSession
Create a local inspector session that can be used on the same thread as the isolate.
Trait Implementations
sourceimpl Drop for JsRuntimeInspector
impl Drop for JsRuntimeInspector
sourceimpl Future for JsRuntimeInspector
impl Future for JsRuntimeInspector
Polling JsRuntimeInspector
allows inspector to accept new incoming
connections and “pump” messages in different sessions.
It should be polled on tick of event loop, ie. in JsRuntime::poll_event_loop
function.
sourceimpl V8InspectorClientImpl for JsRuntimeInspector
impl V8InspectorClientImpl for JsRuntimeInspector
fn base(&self) -> &V8InspectorClientBase
fn base_mut(&mut self) -> &mut V8InspectorClientBase
fn run_message_loop_on_pause(&mut self, context_group_id: i32)
fn quit_message_loop_on_pause(&mut self)
fn run_if_waiting_for_debugger(&mut self, context_group_id: i32)
fn generate_unique_id(&mut self) -> i64
fn console_api_message(
&mut self,
context_group_id: i32,
level: i32,
message: &StringView<'_>,
url: &StringView<'_>,
line_number: u32,
column_number: u32,
stack_trace: &mut V8StackTrace
)
Auto Trait Implementations
impl !RefUnwindSafe for JsRuntimeInspector
impl !Send for JsRuntimeInspector
impl !Sync for JsRuntimeInspector
impl Unpin for JsRuntimeInspector
impl !UnwindSafe for JsRuntimeInspector
Blanket Implementations
sourceimpl<T> AsV8InspectorClient for T where
T: V8InspectorClientImpl,
impl<T> AsV8InspectorClient for T where
T: V8InspectorClientImpl,
fn as_client(&self) -> &V8InspectorClient
fn as_client_mut(&mut self) -> &mut V8InspectorClient
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> FutureExt for T where
T: Future + ?Sized,
impl<T> FutureExt for T where
T: Future + ?Sized,
fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output) -> U,
fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output) -> U,
Map this future’s output to a different type, returning a new future of the resulting type. Read more
fn map_into<U>(self) -> MapInto<Self, U> where
Self::Output: Into<U>,
fn map_into<U>(self) -> MapInto<Self, U> where
Self::Output: Into<U>,
Map this future’s output to a different type, returning a new future of the resulting type. Read more
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
Chain on a computation for when a future finished, passing the result of
the future to the provided closure f
. Read more
fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>,
fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>,
Wrap this future in an Either
future, making it the left-hand variant
of that Either
. Read more
fn right_future<A>(self) -> Either<A, Self> where
A: Future<Output = Self::Output>,
fn right_future<A>(self) -> Either<A, Self> where
A: Future<Output = Self::Output>,
Wrap this future in an Either
future, making it the right-hand variant
of that Either
. Read more
fn into_stream(self) -> IntoStream<Self>
fn into_stream(self) -> IntoStream<Self>
Convert this future into a single element stream. Read more
fn flatten(self) -> Flatten<Self> where
Self::Output: Future,
fn flatten(self) -> Flatten<Self> where
Self::Output: Future,
Flatten the execution of this future when the output of this future is itself another future. Read more
fn flatten_stream(self) -> FlattenStream<Self> where
Self::Output: Stream,
fn flatten_stream(self) -> FlattenStream<Self> where
Self::Output: Stream,
Flatten the execution of this future when the successful result of this future is a stream. Read more
fn fuse(self) -> Fuse<Self>
fn fuse(self) -> Fuse<Self>
Fuse a future such that poll
will never again be called once it has
completed. This method can be used to turn any Future
into a
FusedFuture
. Read more
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output),
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output),
Do something with the output of a future before passing it on. Read more
fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
Catches unwinding panics while polling the future. Read more
Create a cloneable handle to this future where all handles will resolve to the same result. Read more
fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)
fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)
Turn this future into a future that yields ()
on completion and sends
its output to another future on a separate task. Read more
fn boxed<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>> where
Self: 'a + Send,
fn boxed<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + Send + 'a, Global>> where
Self: 'a + Send,
Wrap the future in a Box, pinning it. Read more
fn boxed_local<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>> where
Self: 'a,
fn boxed_local<'a>(
self
) -> Pin<Box<dyn Future<Output = Self::Output> + 'a, Global>> where
Self: 'a,
Wrap the future in a Box, pinning it. Read more
fn unit_error(self) -> UnitError<Self>
fn unit_error(self) -> UnitError<Self>
Turns a Future<Output = T>
into a
TryFuture<Ok = T, Error = ()
>. Read more
fn never_error(self) -> NeverError<Self>
fn never_error(self) -> NeverError<Self>
Turns a Future<Output = T>
into a
TryFuture<Ok = T, Error = Never
>. Read more
fn poll_unpin(&mut self, cx: &mut Context<'_>) -> Poll<Self::Output> where
Self: Unpin,
fn poll_unpin(&mut self, cx: &mut Context<'_>) -> Poll<Self::Output> where
Self: Unpin,
A convenience for calling Future::poll
on Unpin
future types.
fn now_or_never(self) -> Option<Self::Output>
fn now_or_never(self) -> Option<Self::Output>
Evaluates and consumes the future, returning the resulting output if
the future is ready after the first call to Future::poll
. Read more
sourceimpl<F> IntoFuture for F where
F: Future,
impl<F> IntoFuture for F where
F: Future,
type Output = <F as Future>::Output
type Output = <F as Future>::Output
into_future
)The output that the future will produce on completion.
type Future = F
type Future = F
into_future
)Which kind of future are we turning this into?
sourcefn into_future(self) -> <F as IntoFuture>::Future
fn into_future(self) -> <F as IntoFuture>::Future
into_future
)Creates a future from a value.