OptimizedMessageHandler

Struct OptimizedMessageHandler 

Source
pub struct OptimizedMessageHandler<F> { /* private fields */ }
Available on crate feature websocket only.
Expand description

Optimized handler for processing individual messages.

This handler is optimized for scenarios where each message should be processed individually but you want the framework to handle the connection loop automatically. It provides better performance than the general websocket_handler for simple per-message processing.

§Type Parameters

  • F: The message processing function type

Implementations§

Source§

impl<F> OptimizedMessageHandler<F>

Source

pub fn new(handler: F) -> Self

Creates a new optimized message handler.

§Parameters
  • handler: Function that processes individual messages
§Returns

A new OptimizedMessageHandler instance

§Example
use ignitia::websocket::{OptimizedMessageHandler, WebSocketConnection, Message};

let handler = OptimizedMessageHandler::new(
    |ws: WebSocketConnection, message: Message| async move {
        match message {
            Message::Text(text) => {
                ws.send_text(format!("Processed: {}", text)).await?;
            }
            _ => {}
        }
        Ok(())
    }
);

Trait Implementations§

Source§

impl<F, Fut> WebSocketHandler for OptimizedMessageHandler<F>
where F: Fn(WebSocketConnection, Message) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<()>> + Send + 'static,

Source§

fn handle_connection<'life0, 'async_trait>( &'life0 self, websocket: WebSocketConnection, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Handles a WebSocket connection for its entire lifetime. Read more
Source§

fn on_message<'life0, 'life1, 'async_trait>( &'life0 self, _websocket: &'life1 WebSocketConnection, _message: Message, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called when a message is received (optional hook). Read more
Source§

fn on_connect<'life0, 'life1, 'async_trait>( &'life0 self, _websocket: &'life1 WebSocketConnection, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Called when a connection is established (optional hook). Read more
Source§

fn on_disconnect<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _websocket: &'life1 WebSocketConnection, _reason: Option<&'life2 str>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called when a connection is closed (optional hook). Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,