Struct JsCommunicationBackend
pub struct JsCommunicationBackend {
sender: Arc<ThreadBoundRunner<JsCommunicationBackendSender>>,
receive_rx: Receiver<IncomingMessage>,
receive_tx: Sender<IncomingMessage>,
}Expand description
JavaScript implementation of the CommunicationBackend trait for IPC communication.
Fields§
§sender: Arc<ThreadBoundRunner<JsCommunicationBackendSender>>§receive_rx: Receiver<IncomingMessage>§receive_tx: Sender<IncomingMessage>Implementations§
§impl JsCommunicationBackend
impl JsCommunicationBackend
pub fn new(sender: JsCommunicationBackendSender) -> JsCommunicationBackend
pub fn new(sender: JsCommunicationBackendSender) -> JsCommunicationBackend
Creates a new instance of the JavaScript communication backend.
Trait Implementations§
§impl Clone for JsCommunicationBackend
impl Clone for JsCommunicationBackend
§fn clone(&self) -> JsCommunicationBackend
fn clone(&self) -> JsCommunicationBackend
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl CommunicationBackend for JsCommunicationBackend
impl CommunicationBackend for JsCommunicationBackend
§type SendError = WasmCommunicationError
type SendError = WasmCommunicationError
Error returned by
send, classified via [IpcErrorKind].§async fn send(
&self,
message: OutgoingMessage,
) -> Result<(), <JsCommunicationBackend as CommunicationBackend>::SendError>
async fn send( &self, message: OutgoingMessage, ) -> Result<(), <JsCommunicationBackend as CommunicationBackend>::SendError>
Send a message to the destination specified in the message. This function may be called
from any thread at any time. Read more
§async fn resolve(&self, group: &BroadcastGroup) -> BroadcastResolution
async fn resolve(&self, group: &BroadcastGroup) -> BroadcastResolution
Resolve a [
BroadcastGroup] into the endpoints that are currently its members. Called by
IpcClient::broadcast, which rejects any resolved endpoint
that falls outside the group. Read more§async fn subscribe(
&self,
) -> <JsCommunicationBackend as CommunicationBackend>::Receiver
async fn subscribe( &self, ) -> <JsCommunicationBackend as CommunicationBackend>::Receiver
Subscribe to receive messages. This function will return a receiver that can be used to
receive messages asynchronously. Read more
§impl FromWasm for JsCommunicationBackend
Available on crate feature wasm only.
impl FromWasm for JsCommunicationBackend
Available on crate feature
wasm only.§type Wire = JsCommunicationBackend
type Wire = JsCommunicationBackend
The type JavaScript actually passes.
§fn from_wire(
wire: <JsCommunicationBackend as FromWasm>::Wire,
) -> Result<JsCommunicationBackend, WireError>
fn from_wire( wire: <JsCommunicationBackend as FromWasm>::Wire, ) -> Result<JsCommunicationBackend, WireError>
Recovers the Rust value from the wire value.
§impl FromWasmAbi for JsCommunicationBackend
impl FromWasmAbi for JsCommunicationBackend
§type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
The Wasm ABI type that this converts from when coming back out from the
ABI boundary.
§unsafe fn from_abi(
js: <JsCommunicationBackend as FromWasmAbi>::Abi,
) -> JsCommunicationBackend
unsafe fn from_abi( js: <JsCommunicationBackend as FromWasmAbi>::Abi, ) -> JsCommunicationBackend
§impl IntoWasmAbi for JsCommunicationBackend
impl IntoWasmAbi for JsCommunicationBackend
§type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
The Wasm ABI type that this converts into when crossing the ABI
boundary.
§fn into_abi(self) -> <JsCommunicationBackend as IntoWasmAbi>::Abi
fn into_abi(self) -> <JsCommunicationBackend as IntoWasmAbi>::Abi
Convert
self into Self::Abi so that it can be sent across the wasm
ABI boundary.§impl LongRefFromWasmAbi for JsCommunicationBackend
impl LongRefFromWasmAbi for JsCommunicationBackend
§type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
Same as
RefFromWasmAbi::Abi§type Anchor = RcRef<JsCommunicationBackend>
type Anchor = RcRef<JsCommunicationBackend>
Same as
RefFromWasmAbi::Anchor§unsafe fn long_ref_from_abi(
js: <JsCommunicationBackend as LongRefFromWasmAbi>::Abi,
) -> <JsCommunicationBackend as LongRefFromWasmAbi>::Anchor
unsafe fn long_ref_from_abi( js: <JsCommunicationBackend as LongRefFromWasmAbi>::Abi, ) -> <JsCommunicationBackend as LongRefFromWasmAbi>::Anchor
Same as
RefFromWasmAbi::ref_from_abi§impl NullableFromWasmAbi for JsCommunicationBackend
impl NullableFromWasmAbi for JsCommunicationBackend
§fn is_null(abi: &<JsCommunicationBackend as MaybeFromWasmAbi>::MaybeAbi) -> bool
fn is_null(abi: &<JsCommunicationBackend as MaybeFromWasmAbi>::MaybeAbi) -> bool
Tests the ABI value for
Nullable::Null.§impl NullableIntoWasmAbi for JsCommunicationBackend
impl NullableIntoWasmAbi for JsCommunicationBackend
§fn null() -> <JsCommunicationBackend as MaybeIntoWasmAbi>::MaybeAbi
fn null() -> <JsCommunicationBackend as MaybeIntoWasmAbi>::MaybeAbi
§impl OptionFromWasmAbi for JsCommunicationBackend
impl OptionFromWasmAbi for JsCommunicationBackend
§fn is_none(abi: &<JsCommunicationBackend as FromWasmAbi>::Abi) -> bool
fn is_none(abi: &<JsCommunicationBackend as FromWasmAbi>::Abi) -> bool
Tests whether the argument is a “none” instance. If so it will be
deserialized as
None, and otherwise it will be passed to
FromWasmAbi.§impl OptionIntoWasmAbi for JsCommunicationBackend
impl OptionIntoWasmAbi for JsCommunicationBackend
§fn none() -> <JsCommunicationBackend as IntoWasmAbi>::Abi
fn none() -> <JsCommunicationBackend as IntoWasmAbi>::Abi
Returns an ABI instance indicating “none”, which JS will interpret as
the
None branch of this option. Read more§impl RefFromWasmAbi for JsCommunicationBackend
impl RefFromWasmAbi for JsCommunicationBackend
§type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
The Wasm ABI type references to
Self are recovered from.§type Anchor = RcRef<JsCommunicationBackend>
type Anchor = RcRef<JsCommunicationBackend>
The type that holds the reference to
Self for the duration of the
invocation of the function that has an &Self parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.§unsafe fn ref_from_abi(
js: <JsCommunicationBackend as RefFromWasmAbi>::Abi,
) -> <JsCommunicationBackend as RefFromWasmAbi>::Anchor
unsafe fn ref_from_abi( js: <JsCommunicationBackend as RefFromWasmAbi>::Abi, ) -> <JsCommunicationBackend as RefFromWasmAbi>::Anchor
§impl RefMutFromWasmAbi for JsCommunicationBackend
impl RefMutFromWasmAbi for JsCommunicationBackend
§type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
type Abi = WasmPtr<WasmRefCell<JsCommunicationBackend>>
Same as
RefFromWasmAbi::Abi§type Anchor = RcRefMut<JsCommunicationBackend>
type Anchor = RcRefMut<JsCommunicationBackend>
Same as
RefFromWasmAbi::Anchor§unsafe fn ref_mut_from_abi(
js: <JsCommunicationBackend as RefMutFromWasmAbi>::Abi,
) -> <JsCommunicationBackend as RefMutFromWasmAbi>::Anchor
unsafe fn ref_mut_from_abi( js: <JsCommunicationBackend as RefMutFromWasmAbi>::Abi, ) -> <JsCommunicationBackend as RefMutFromWasmAbi>::Anchor
Same as
RefFromWasmAbi::ref_from_abi§impl ToWasm for JsCommunicationBackend
Available on crate feature wasm only.
impl ToWasm for JsCommunicationBackend
Available on crate feature
wasm only.§type Wire = JsCommunicationBackend
type Wire = JsCommunicationBackend
The type JavaScript actually receives.
§fn to_wire(self) -> Result<<JsCommunicationBackend as ToWasm>::Wire, WireError>
fn to_wire(self) -> Result<<JsCommunicationBackend as ToWasm>::Wire, WireError>
Converts the Rust value into the wire value.
§impl TryFromJsValue for JsCommunicationBackend
impl TryFromJsValue for JsCommunicationBackend
§fn try_from_js_value(value: JsValue) -> Result<JsCommunicationBackend, JsValue>
fn try_from_js_value(value: JsValue) -> Result<JsCommunicationBackend, JsValue>
Performs the conversion.
§fn try_from_js_value_ref(value: &JsValue) -> Option<JsCommunicationBackend>
fn try_from_js_value_ref(value: &JsValue) -> Option<JsCommunicationBackend>
Performs the conversion.
Source§const NULLABLE: bool = false
const NULLABLE: bool = false
Whether
Self accepts null as a distinct value space, as
Nullable<T> does. An enclosing Option then passes null through
instead of reading it as None, so Option<T> is itself nullable
exactly when T is not. JsValue does not set this: it accepts
null as one value among all of them, not as a distinct space, and
Option<JsValue> reads it as None like the ABI does. This is the
JS-value side of NullableFromWasmAbi, which claims null at the
ABI.§impl VectorFromWasmAbi for JsCommunicationBackend
impl VectorFromWasmAbi for JsCommunicationBackend
type Abi = <Box<[JsValue]> as FromWasmAbi>::Abi
unsafe fn vector_from_abi( js: <JsCommunicationBackend as VectorFromWasmAbi>::Abi, ) -> Box<[JsCommunicationBackend]>
§impl VectorIntoWasmAbi for JsCommunicationBackend
impl VectorIntoWasmAbi for JsCommunicationBackend
type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi
fn vector_into_abi( vector: Box<[JsCommunicationBackend]>, ) -> <JsCommunicationBackend as VectorIntoWasmAbi>::Abi
Auto Trait Implementations§
impl Freeze for JsCommunicationBackend
impl RefUnwindSafe for JsCommunicationBackend
impl Send for JsCommunicationBackend
impl Sync for JsCommunicationBackend
impl Unpin for JsCommunicationBackend
impl UnsafeUnpin for JsCommunicationBackend
impl UnwindSafe for JsCommunicationBackend
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T> ⓘ
unsafe fn consume_handle(handle: Handle) -> Arc<T> ⓘ
Consume a handle, getting back the initial
Arc<> Read more§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> ⓘ
Converts
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> ⓘ
Converts
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 moreSource§impl<T> MaybeFromWasmAbi for Twhere
T: OptionFromWasmAbi,
impl<T> MaybeFromWasmAbi for Twhere
T: OptionFromWasmAbi,
Source§type MaybeAbi = <T as FromWasmAbi>::Abi
type MaybeAbi = <T as FromWasmAbi>::Abi
The ABI of
Option<Self>.Source§unsafe fn from_maybe_abi(js: <T as FromWasmAbi>::Abi) -> T
unsafe fn from_maybe_abi(js: <T as FromWasmAbi>::Abi) -> T
unsafe fn try_from_maybe_abi( js: <T as FromWasmAbi>::Abi, ) -> Result<T, &'static str>
Source§impl<T> MaybeIntoWasmAbi for Twhere
T: OptionIntoWasmAbi,
impl<T> MaybeIntoWasmAbi for Twhere
T: OptionIntoWasmAbi,
Source§type MaybeAbi = <T as IntoWasmAbi>::Abi
type MaybeAbi = <T as IntoWasmAbi>::Abi
The ABI of
Option<Self>.Source§fn into_maybe_abi(self) -> <T as IntoWasmAbi>::Abi
fn into_maybe_abi(self) -> <T as IntoWasmAbi>::Abi
Converts a value into the
Option<Self> ABI.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
Same as
IntoWasmAbi::AbiSource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
Same as
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.