pub enum Port {
Worker(Rc<Worker>),
DedicatedWorkerGlobalScope(Rc<DedicatedWorkerGlobalScope>),
MessagePort(Rc<MessagePort>),
}
Expand description
Port abstracts over the different Javascript types that support sending and receiving messages. We need to abstract over these types since there is no trait available to describe this interface. Moreover, some of these interfaces have slightly different semantics, e.g., we need to call web_sys::MessagePort::start for the web_sys::MessagePort. The inner variants are wrapped in an Rc so that we can force a worker to terminate when we drop the last instance. Unfortunately, the browser does not seem to reliably terminate workers during garbage collection.
Variants§
Worker(Rc<Worker>)
DedicatedWorkerGlobalScope(Rc<DedicatedWorkerGlobalScope>)
MessagePort(Rc<MessagePort>)
Implementations§
Trait Implementations§
Source§impl From<DedicatedWorkerGlobalScope> for Port
impl From<DedicatedWorkerGlobalScope> for Port
Source§fn from(scope: DedicatedWorkerGlobalScope) -> Self
fn from(scope: DedicatedWorkerGlobalScope) -> Self
Converts to this type from the input type.
Source§impl From<MessagePort> for Port
impl From<MessagePort> for Port
Source§fn from(port: MessagePort) -> Self
fn from(port: MessagePort) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for Port
impl RefUnwindSafe for Port
impl !Send for Port
impl !Sync for Port
impl Unpin for Port
impl UnwindSafe for Port
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
Mutably borrows from an owned value. Read more