pub struct WsBridge { /* private fields */ }Expand description
The WebSocket server as an Arora Bridge.
Note: the server’s validate_paths (on by default) checks written key
paths against its Registry, which this bridge does not populate — either
mirror the runtime’s keys into the registry or disable validate_paths
when serving purely through the bridge.
Implementations§
Source§impl WsBridge
impl WsBridge
Sourcepub async fn new(server: Arc<AroraWSServer>) -> Self
pub async fn new(server: Arc<AroraWSServer>) -> Self
Wrap a server: register handlers that turn each incoming message into a
BridgeCommand on the commands stream.
Trait Implementations§
Source§impl Bridge for WsBridge
impl Bridge for WsBridge
Source§fn commands<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = CommandStream> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn commands<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = CommandStream> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The command stream is single-use: the channel’s receiving half is handed out on the first call, and later calls get an empty stream — with a loud warning, because a runtime silently losing its command plane is the worst failure mode.
Source§fn get_device_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = BridgeResult<Option<DeviceInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_device_info<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = BridgeResult<Option<DeviceInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The device’s current info, if registered.
Source§fn device_info_updated<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = BridgeResult<DeviceInfoStream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn device_info_updated<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = BridgeResult<DeviceInfoStream>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
A stream of device-info updates from the remote (
Ok(None) = unregistered).Source§fn update_device_info<'life0, 'async_trait>(
&'life0 self,
info: Option<DeviceInfo>,
) -> Pin<Box<dyn Future<Output = BridgeResult<Option<DeviceInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_device_info<'life0, 'async_trait>(
&'life0 self,
info: Option<DeviceInfo>,
) -> Pin<Box<dyn Future<Output = BridgeResult<Option<DeviceInfo>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Push updated device info to the remote; returns the merged result.
Source§fn data_requested<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DataRequestedStream> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn data_requested<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = DataRequestedStream> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
A stream that toggles as a client claims/releases interest in the data.
Source§fn send_data<'life0, 'async_trait>(
&'life0 self,
data: StateChange,
) -> Pin<Box<dyn Future<Output = BridgeResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_data<'life0, 'async_trait>(
&'life0 self,
data: StateChange,
) -> Pin<Box<dyn Future<Output = BridgeResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Push a state change out to the remote.
Auto Trait Implementations§
impl !Freeze for WsBridge
impl !RefUnwindSafe for WsBridge
impl !UnwindSafe for WsBridge
impl Send for WsBridge
impl Sync for WsBridge
impl Unpin for WsBridge
impl UnsafeUnpin for WsBridge
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