DistributedSessionManager

Struct DistributedSessionManager 

Source
pub struct DistributedSessionManager { /* private fields */ }
Expand description

Distributed session manager 分布式 Session 管理器

Manages distributed sessions and service authentication 管理分布式 Sessions 和服务认证

Implementations§

Source§

impl DistributedSessionManager

Source

pub fn new( storage: Arc<dyn DistributedSessionStorage>, service_id: String, session_timeout: Duration, ) -> DistributedSessionManager

Create a new distributed session manager 创建新的分布式 Session 管理器

§Arguments | 参数
  • storage - Session storage implementation | Session 存储实现
  • service_id - ID of this service | 此服务的 ID
  • session_timeout - Default session timeout | 默认 Session 超时时间
§Example | 示例
let storage = Arc::new(MyDistributedStorage::new());
let manager = DistributedSessionManager::new(
    storage,
    "my-service".to_string(),
    Duration::from_secs(3600),
);
Source

pub async fn register_service(&self, credential: ServiceCredential)

Register a service for inter-service authentication 注册服务以进行服务间认证

§Arguments | 参数
  • credential - Service credential information | 服务凭证信息
§Example | 示例
let credential = ServiceCredential {
    service_id: "api-gateway".to_string(),
    service_name: "API Gateway".to_string(),
    secret_key: "secret123".to_string(),
    created_at: Utc::now(),
    permissions: vec!["read".to_string(), "write".to_string()],
};
manager.register_service(credential).await;
Source

pub async fn verify_service( &self, service_id: &str, secret: &str, ) -> Result<ServiceCredential, SaTokenError>

Verify a service’s credentials 验证服务的凭证

§Arguments | 参数
  • service_id - Service identifier | 服务标识符
  • secret - Service secret key | 服务密钥
§Returns | 返回值
  • Ok(ServiceCredential) - Service authenticated | 服务已认证
  • Err(PermissionDenied) - Invalid credentials | 凭证无效
§Example | 示例
match manager.verify_service("api-gateway", "secret123").await {
    Ok(cred) => println!("Service {} verified", cred.service_name),
    Err(e) => println!("Verification failed: {}", e),
}
Source

pub async fn create_session( &self, login_id: String, token: String, ) -> Result<DistributedSession, SaTokenError>

Create a new distributed session 创建新的分布式 Session

§Arguments | 参数
  • login_id - User login ID | 用户登录 ID
  • token - Authentication token | 认证 Token
§Returns | 返回值
  • Ok(DistributedSession) - Session created | Session 已创建
  • Err(SaTokenError) - Creation failed | 创建失败
§Example | 示例
let session = manager.create_session(
    "user123".to_string(),
    "token456".to_string(),
).await?;
println!("Session created: {}", session.session_id);
Source

pub async fn get_session( &self, session_id: &str, ) -> Result<DistributedSession, SaTokenError>

Get a session by ID 通过 ID 获取 Session

§Arguments | 参数
  • session_id - Session identifier | Session 标识符
§Returns | 返回值
  • Ok(DistributedSession) - Session found | 找到 Session
  • Err(SessionNotFound) - Session not found | 未找到 Session
§Example | 示例
let session = manager.get_session("session-id-123").await?;
println!("User: {}", session.login_id);
Source

pub async fn update_session( &self, session: DistributedSession, ) -> Result<(), SaTokenError>

Update an existing session 更新现有 Session

§Arguments | 参数
  • session - Updated session data | 更新后的 Session 数据
§Example | 示例
let mut session = manager.get_session("session-id").await?;
session.attributes.insert("role".to_string(), "admin".to_string());
manager.update_session(session).await?;
Source

pub async fn delete_session(&self, session_id: &str) -> Result<(), SaTokenError>

Delete a session 删除 Session

§Arguments | 参数
  • session_id - Session identifier | Session 标识符
§Example | 示例
manager.delete_session("session-id-123").await?;
Source

pub async fn refresh_session( &self, session_id: &str, ) -> Result<(), SaTokenError>

Refresh a session (update last access time) 刷新 Session(更新最后访问时间)

§Arguments | 参数
  • session_id - Session identifier | Session 标识符
§Example | 示例
manager.refresh_session("session-id-123").await?;
Source

pub async fn set_attribute( &self, session_id: &str, key: String, value: String, ) -> Result<(), SaTokenError>

Set a session attribute 设置 Session 属性

§Arguments | 参数
  • session_id - Session identifier | Session 标识符
  • key - Attribute key | 属性键
  • value - Attribute value | 属性值
§Example | 示例
manager.set_attribute("session-id", "theme".to_string(), "dark".to_string()).await?;
Source

pub async fn get_attribute( &self, session_id: &str, key: &str, ) -> Result<Option<String>, SaTokenError>

Get a session attribute 获取 Session 属性

§Arguments | 参数
  • session_id - Session identifier | Session 标识符
  • key - Attribute key | 属性键
§Returns | 返回值
  • Some(value) - Attribute found | 找到属性
  • None - Attribute not found | 未找到属性
§Example | 示例
if let Some(theme) = manager.get_attribute("session-id", "theme").await? {
    println!("Theme: {}", theme);
}
Source

pub async fn remove_attribute( &self, session_id: &str, key: &str, ) -> Result<(), SaTokenError>

Remove a session attribute 移除 Session 属性

§Arguments | 参数
  • session_id - Session identifier | Session 标识符
  • key - Attribute key | 属性键
§Example | 示例
manager.remove_attribute("session-id", "temp_data").await?;
Source

pub async fn get_sessions_by_login_id( &self, login_id: &str, ) -> Result<Vec<DistributedSession>, SaTokenError>

Get all sessions for a specific user 获取特定用户的所有 Sessions

§Arguments | 参数
  • login_id - User login ID | 用户登录 ID
§Returns | 返回值

Vector of sessions | Sessions 向量

§Example | 示例
let sessions = manager.get_sessions_by_login_id("user123").await?;
println!("User has {} active sessions", sessions.len());
Source

pub async fn delete_all_sessions( &self, login_id: &str, ) -> Result<(), SaTokenError>

Delete all sessions for a specific user 删除特定用户的所有 Sessions

§Arguments | 参数
  • login_id - User login ID | 用户登录 ID
§Example | 示例
manager.delete_all_sessions("user123").await?;

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

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
§

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

§

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> IntoCollection<T> for T

Source§

fn into_collection<A>(self) -> SmallVec<A>
where A: Array<Item = T>,

Converts self into a collection.
Source§

fn mapped<U, F, A>(self, f: F) -> SmallVec<A>
where F: FnMut(T) -> U, A: Array<Item = U>,

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

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

Source§

fn fg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

§Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
Source§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Primary].

§Example
println!("{}", value.primary());
Source§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Fixed].

§Example
println!("{}", value.fixed(color));
Source§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Rgb].

§Example
println!("{}", value.rgb(r, g, b));
Source§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Black].

§Example
println!("{}", value.black());
Source§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Red].

§Example
println!("{}", value.red());
Source§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Green].

§Example
println!("{}", value.green());
Source§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Yellow].

§Example
println!("{}", value.yellow());
Source§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Blue].

§Example
println!("{}", value.blue());
Source§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Magenta].

§Example
println!("{}", value.magenta());
Source§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Cyan].

§Example
println!("{}", value.cyan());
Source§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: White].

§Example
println!("{}", value.white());
Source§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlack].

§Example
println!("{}", value.bright_black());
Source§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightRed].

§Example
println!("{}", value.bright_red());
Source§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightGreen].

§Example
println!("{}", value.bright_green());
Source§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightYellow].

§Example
println!("{}", value.bright_yellow());
Source§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlue].

§Example
println!("{}", value.bright_blue());
Source§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.bright_magenta());
Source§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightCyan].

§Example
println!("{}", value.bright_cyan());
Source§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightWhite].

§Example
println!("{}", value.bright_white());
Source§

fn bg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

§Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
Source§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Primary].

§Example
println!("{}", value.on_primary());
Source§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Fixed].

§Example
println!("{}", value.on_fixed(color));
Source§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
Source§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Black].

§Example
println!("{}", value.on_black());
Source§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Red].

§Example
println!("{}", value.on_red());
Source§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Green].

§Example
println!("{}", value.on_green());
Source§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Yellow].

§Example
println!("{}", value.on_yellow());
Source§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Blue].

§Example
println!("{}", value.on_blue());
Source§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Magenta].

§Example
println!("{}", value.on_magenta());
Source§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Cyan].

§Example
println!("{}", value.on_cyan());
Source§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: White].

§Example
println!("{}", value.on_white());
Source§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlack].

§Example
println!("{}", value.on_bright_black());
Source§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightRed].

§Example
println!("{}", value.on_bright_red());
Source§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightGreen].

§Example
println!("{}", value.on_bright_green());
Source§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
Source§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlue].

§Example
println!("{}", value.on_bright_blue());
Source§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
Source§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
Source§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightWhite].

§Example
println!("{}", value.on_bright_white());
Source§

fn attr(&self, value: Attribute) -> Painted<&T>

Enables the styling Attribute value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

§Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
Source§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Bold].

§Example
println!("{}", value.bold());
Source§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Dim].

§Example
println!("{}", value.dim());
Source§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Italic].

§Example
println!("{}", value.italic());
Source§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute :: Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute :: RapidBlink].

§Example
println!("{}", value.rapid_blink());
Source§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Invert].

§Example
println!("{}", value.invert());
Source§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Conceal].

§Example
println!("{}", value.conceal());
Source§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Strike].

§Example
println!("{}", value.strike());
Source§

fn quirk(&self, value: Quirk) -> Painted<&T>

Enables the yansi Quirk value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

§Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
Source§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Mask].

§Example
println!("{}", value.mask());
Source§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Wrap].

§Example
println!("{}", value.wrap());
Source§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Linger].

§Example
println!("{}", value.linger());
Source§

fn clear(&self) -> Painted<&T>

👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear(). The clear() method will be removed in a future release.

Returns self with the quirk() set to [Quirk :: Clear].

§Example
println!("{}", value.clear());
Source§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Resetting].

§Example
println!("{}", value.resetting());
Source§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Bright].

§Example
println!("{}", value.bright());
Source§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: OnBright].

§Example
println!("{}", value.on_bright());
Source§

fn whenever(&self, value: Condition) -> Painted<&T>

Conditionally enable styling based on whether the Condition value applies. Replaces any previous condition.

See the crate level docs for more details.

§Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
Source§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new Painted with a default Style. Read more
Source§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
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