pub struct SaSession {
pub id: String,
pub create_time: DateTime<Utc>,
pub terminal_list: Vec<SaTerminalInfo>,
pub history_terminal_count: i32,
pub data: HashMap<String, Value>,
}Expand description
Session 对象 | Session Object
用于存储用户会话数据的对象 Object for storing user session data
§字段说明 | Field Description
id: Session 唯一标识 | Session unique identifiercreate_time: 创建时间 | Creation timedata: 存储的键值对数据 | Stored key-value data
§使用示例 | Usage Example
ⓘ
let mut session = SaSession::new("session_123");
session.set("username", "张三")?;
session.set("age", 25)?;
let username: Option<String> = session.get("username");
println!("Username: {:?}", username);Fields§
§id: StringSession ID
create_time: DateTime<Utc>创建时间 | Creation time
terminal_list: Vec<SaTerminalInfo>已登录设备终端列表(对齐 Java SaSession.terminalList)
history_terminal_count: i32历史累计登录设备数,仅增不减,用于生成终端 index(对齐 Java historyTerminalCount)
data: HashMap<String, Value>数据存储 | Data storage
Implementations§
Source§impl SaSession
impl SaSession
pub fn new(id: impl Into<String>) -> Self
Sourcepub fn get<T: for<'de> Deserialize<'de>>(&self, key: &str) -> Option<T>
pub fn get<T: for<'de> Deserialize<'de>>(&self, key: &str) -> Option<T>
Sourcepub fn add_terminal(&mut self, terminal: SaTerminalInfo)
pub fn add_terminal(&mut self, terminal: SaTerminalInfo)
新增一个终端:自动分配 index = history_terminal_count + 1,并累加历史计数
Sourcepub fn remove_terminal(&mut self, token_value: &str) -> Option<SaTerminalInfo>
pub fn remove_terminal(&mut self, token_value: &str) -> Option<SaTerminalInfo>
按 token 移除终端;返回被移除的终端(不存在则 None)
Sourcepub fn get_terminal(&self, token_value: &str) -> Option<&SaTerminalInfo>
pub fn get_terminal(&self, token_value: &str) -> Option<&SaTerminalInfo>
按 token 获取终端引用
Sourcepub fn terminal_list_copy(&self) -> Vec<SaTerminalInfo>
pub fn terminal_list_copy(&self) -> Vec<SaTerminalInfo>
终端列表副本
Sourcepub fn get_terminal_list_by_device_type(
&self,
device_type: Option<&str>,
) -> Vec<SaTerminalInfo>
pub fn get_terminal_list_by_device_type( &self, device_type: Option<&str>, ) -> Vec<SaTerminalInfo>
按设备类型筛选终端;device_type 传 None 表示不限设备类型
Sourcepub fn get_token_value_list_by_device_type(
&self,
device_type: Option<&str>,
) -> Vec<String>
pub fn get_token_value_list_by_device_type( &self, device_type: Option<&str>, ) -> Vec<String>
按设备类型提取 token 列表
Sourcepub fn terminal_count(&self) -> usize
pub fn terminal_count(&self) -> usize
终端数量
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SaSession
impl<'de> Deserialize<'de> for SaSession
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for SaSession
impl RefUnwindSafe for SaSession
impl Send for SaSession
impl Sync for SaSession
impl Unpin for SaSession
impl UnsafeUnpin for SaSession
impl UnwindSafe for SaSession
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