pub struct DMSCSession {
pub id: String,
pub user_id: String,
pub created_at: u64,
pub last_accessed: u64,
pub expires_at: u64,
pub data: HashMap<String, String>,
pub ip_address: Option<String>,
pub user_agent: Option<String>,
}Expand description
Session structure for tracking user sessions.
This struct represents a user session with metadata, expiration tracking, and custom data storage. Sessions are uniquely identified by UUIDs.
Fields§
§id: StringUnique session identifier generated using UUID v4
user_id: StringUser ID associated with this session
created_at: u64Session creation time as Unix timestamp
last_accessed: u64Last access time as Unix timestamp (updated on each access)
expires_at: u64Session expiration time as Unix timestamp
data: HashMap<String, String>Custom key-value data associated with the session
ip_address: Option<String>Client IP address from which the session was created
user_agent: Option<String>Client user agent string from which the session was created
Implementations§
Source§impl DMSCSession
impl DMSCSession
Sourcepub fn new(
user_id: String,
timeout_secs: u64,
ip_address: Option<String>,
user_agent: Option<String>,
) -> Self
pub fn new( user_id: String, timeout_secs: u64, ip_address: Option<String>, user_agent: Option<String>, ) -> Self
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Sourcepub fn touch(&mut self)
pub fn touch(&mut self)
Updates the last accessed time of the session.
This method is called when a session is accessed to update its last accessed timestamp, which can be used for session activity tracking.
Sourcepub fn extend(&mut self, timeout_secs: u64)
pub fn extend(&mut self, timeout_secs: u64)
Extends the session expiration time.
§Parameters
timeout_secs: New timeout in seconds from the current time
Trait Implementations§
Source§impl Clone for DMSCSession
impl Clone for DMSCSession
Source§fn clone(&self) -> DMSCSession
fn clone(&self) -> DMSCSession
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DMSCSession
impl Debug for DMSCSession
Source§impl<'de> Deserialize<'de> for DMSCSession
impl<'de> Deserialize<'de> for DMSCSession
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'py> IntoPyObject<'py> for DMSCSession
impl<'py> IntoPyObject<'py> for DMSCSession
Source§type Target = DMSCSession
type Target = DMSCSession
Source§type Output = Bound<'py, <DMSCSession as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <DMSCSession as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for DMSCSession
impl PyClass for DMSCSession
Source§impl PyClassImpl for DMSCSession
impl PyClassImpl for DMSCSession
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = c"Session structure for tracking user sessions.\n\nThis struct represents a user session with metadata, expiration tracking,\nand custom data storage. Sessions are uniquely identified by UUIDs.\x00"
const RAW_DOC: &'static CStr = c"Session structure for tracking user sessions.\n\nThis struct represents a user session with metadata, expiration tracking,\nand custom data storage. Sessions are uniquely identified by UUIDs.\x00"
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<DMSCSession>
type ThreadChecker = SendablePyClass<DMSCSession>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature for DMSCSession
impl PyClassNewTextSignature for DMSCSession
const TEXT_SIGNATURE: &'static str = "(id, user_id, created_at, last_accessed, expires_at, data, ip_address, user_agent)"
Source§impl PyMethods<DMSCSession> for PyClassImplCollector<DMSCSession>
impl PyMethods<DMSCSession> for PyClassImplCollector<DMSCSession>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for DMSCSession
impl PyTypeInfo for DMSCSession
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.Source§impl Serialize for DMSCSession
impl Serialize for DMSCSession
impl DerefToPyAny for DMSCSession
impl ExtractPyClassWithClone for DMSCSession
Auto Trait Implementations§
impl Freeze for DMSCSession
impl RefUnwindSafe for DMSCSession
impl Send for DMSCSession
impl Sync for DMSCSession
impl Unpin for DMSCSession
impl UnwindSafe for DMSCSession
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more