Struct socketioxide::handler::extract::State
source · pub struct State<T: 'static>(pub &'static T);Available on crate feature
state only.Expand description
An Extractor that contains a reference to a state previously set with SocketIoBuilder::with_state.
It implements std::ops::Deref to access the inner type so you can use it as a normal reference.
The specified state type must be the same as the one set with SocketIoBuilder::with_state.
If it is not the case, the handler won’t be called and an error log will be print if the tracing feature is enabled.
The state is shared between the entire socket.io app context.
Example
#[derive(Default)]
struct MyAppData {
user_cnt: AtomicUsize,
}
impl MyAppData {
fn add_user(&self) {
self.user_cnt.fetch_add(1, Ordering::SeqCst);
}
fn rm_user(&self) {
self.user_cnt.fetch_sub(1, Ordering::SeqCst);
}
}
let (_, io) = SocketIo::builder().with_state(MyAppData::default()).build_svc();
io.ns("/", |socket: SocketRef, state: State<MyAppData>| {
state.add_user();
println!("User count: {}", state.user_cnt.load(Ordering::SeqCst));
});Tuple Fields§
§0: &'static TTrait Implementations§
source§impl<A: Adapter, T: Send + Sync + 'static> FromConnectParts<A> for State<T>
impl<A: Adapter, T: Send + Sync + 'static> FromConnectParts<A> for State<T>
§type Error = StateNotFound
type Error = StateNotFound
The error type returned by the extractor
source§fn from_connect_parts(
_: &Arc<Socket<A>>,
_: &Option<String>
) -> Result<Self, StateNotFound>
fn from_connect_parts( _: &Arc<Socket<A>>, _: &Option<String> ) -> Result<Self, StateNotFound>
Extract the arguments from the connect event.
If it fails, the handler is not called
source§impl<A: Adapter, T: Send + Sync + 'static> FromDisconnectParts<A> for State<T>
impl<A: Adapter, T: Send + Sync + 'static> FromDisconnectParts<A> for State<T>
§type Error = StateNotFound
type Error = StateNotFound
The error type returned by the extractor
source§fn from_disconnect_parts(
_: &Arc<Socket<A>>,
_: DisconnectReason
) -> Result<Self, StateNotFound>
fn from_disconnect_parts( _: &Arc<Socket<A>>, _: DisconnectReason ) -> Result<Self, StateNotFound>
Extract the arguments from the disconnect event.
If it fails, the handler is not called
Auto Trait Implementations§
impl<T> RefUnwindSafe for State<T>where
T: RefUnwindSafe,
impl<T> Send for State<T>where
T: Sync,
impl<T> Sync for State<T>where
T: Sync,
impl<T> Unpin for State<T>
impl<T> UnwindSafe for State<T>where
T: RefUnwindSafe,
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