Struct socketioxide::extract::State
source · pub struct State<T>(pub T);Available on crate feature
state only.Expand description
An Extractor that contains a Clone of 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, Clone)]
struct MyAppData {
user_cnt: Arc<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: TTrait Implementations§
source§impl<A: Adapter, T: Clone + Send + Sync + 'static> FromConnectParts<A> for State<T>
impl<A: Adapter, T: Clone + Send + Sync + 'static> FromConnectParts<A> for State<T>
§type Error = StateNotFound<T>
type Error = StateNotFound<T>
The error type returned by the extractor
source§fn from_connect_parts(
s: &Arc<Socket<A>>,
_: &Option<String>,
) -> Result<Self, StateNotFound<T>>
fn from_connect_parts( s: &Arc<Socket<A>>, _: &Option<String>, ) -> Result<Self, StateNotFound<T>>
Extract the arguments from the connect event.
If it fails, the handler is not called
source§impl<A: Adapter, T: Clone + Send + Sync + 'static> FromDisconnectParts<A> for State<T>
impl<A: Adapter, T: Clone + Send + Sync + 'static> FromDisconnectParts<A> for State<T>
§type Error = StateNotFound<T>
type Error = StateNotFound<T>
The error type returned by the extractor
source§fn from_disconnect_parts(
s: &Arc<Socket<A>>,
_: DisconnectReason,
) -> Result<Self, StateNotFound<T>>
fn from_disconnect_parts( s: &Arc<Socket<A>>, _: DisconnectReason, ) -> Result<Self, StateNotFound<T>>
Extract the arguments from the disconnect event.
If it fails, the handler is not called
Auto Trait Implementations§
impl<T> Freeze for State<T>where
T: Freeze,
impl<T> RefUnwindSafe for State<T>where
T: RefUnwindSafe,
impl<T> Send for State<T>where
T: Send,
impl<T> Sync for State<T>where
T: Sync,
impl<T> Unpin for State<T>where
T: Unpin,
impl<T> UnwindSafe for State<T>where
T: UnwindSafe,
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