pub struct TurboStream;Expand description
Turbo Stream WebSocket controller.
Trait Implementations§
Source§impl Controller for TurboStream
impl Controller for TurboStream
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle the request and return a response. Implement this function to define how your controller
will respond to requests.
This method is asynchronous, and since we use
async_trait, the signature can be a bit confusing.
The actual method is: Read moreSource§fn handle_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 Request,
stream: Stream<'life2>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 Request,
stream: Stream<'life2>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Internal function that handlers the TCP connection directly after a response
has been sent to the client by the controller. This is typically used for WebSocket connections,
but can also be used to stream data like video.
Source§fn auth(&self) -> &AuthHandler
fn auth(&self) -> &AuthHandler
Set the authentication mechanism for this controller.
Default authentication method is to allow all requests, but can
be adjusted through configuration. Read more
Source§fn middleware(&self) -> &MiddlewareSet
fn middleware(&self) -> &MiddlewareSet
Configure middleware on this controller.
Global middleware can be set in the configuration. By default,
controllers have no middleware.
Source§fn skip_csrf(&self) -> bool
fn skip_csrf(&self) -> bool
Don’t use CSRF protection on this controller. You generally don’t want to disable this unless you
have another mechanism to make sure your users are not being duped into making requests to your app
from somewhere else.
Source§fn route(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
fn route(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
Create a basic route handler for this controller. Read more
Source§fn wildcard(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
fn wildcard(self, path: &str) -> Handlerwhere
Self: Sized + 'static,
Create a wildcard route handler for this controller. Read more
Source§fn handle_internal<'life0, 'async_trait>(
&'life0 self,
request: Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn handle_internal<'life0, 'async_trait>(
&'life0 self,
request: Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Internal function which implements the bulk of Rwf controller logic. Do not implement this unless
you’re looking to do something entirely different. Read more
Source§fn controller_name(&self) -> &'static str
fn controller_name(&self) -> &'static str
The name of this controller. Used for logging. All names are globally unique, so
you won’t need to override this method.
Source§impl Default for TurboStream
impl Default for TurboStream
Source§fn default() -> TurboStream
fn default() -> TurboStream
Returns the “default value” for a type. Read more
Source§impl WebsocketController for TurboStream
impl WebsocketController for TurboStream
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 Request,
) -> Pin<Box<dyn Future<Output = Result<Response, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle WebSocket connection.
Source§fn client_message<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 SessionId,
message: Message,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn client_message<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 SessionId,
message: Message,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle an incoming client message.
Source§fn client_connected<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn client_connected<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 SessionId,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Do something when a client creates a new WebSocket connection.
Source§fn handle_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 Request,
stream: Stream<'life2>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: &'life1 Request,
stream: Stream<'life2>,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Handle the WebSocket TCP stream. Provides the WebSocket
protocol implementation. You may not want to override this unless you
want to change how WebSockets work in Rwf.
Auto Trait Implementations§
impl Freeze for TurboStream
impl RefUnwindSafe for TurboStream
impl Send for TurboStream
impl Sync for TurboStream
impl Unpin for TurboStream
impl UnwindSafe for TurboStream
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