sa_token_core/codec.rs
1// Author: 金书记
2//
3//! Pluggable serialization helpers | 可插拔序列化辅助函数
4//!
5//! Thin wrappers around [`SharedSerializer`] that map errors into [`SaTokenError`].
6//! Prefer these when a module holds a serializer but not full [`SaTokenConfig`].
7//! 对 [`SharedSerializer`] 的薄封装,将错误映射为 [`SaTokenError`]。
8//! 模块仅持有序列化器、无完整 config 时优先使用。
9
10use sa_token_adapter::serializer::SharedSerializer;
11use serde::{Serialize, de::DeserializeOwned};
12
13use crate::error::{SaTokenError, SaTokenResult};
14
15/// Encode object to storage string | 将对象编码为存储字符串
16#[inline]
17pub fn encode_value<T: Serialize + ?Sized>(
18 serializer: &SharedSerializer,
19 value: &T,
20) -> SaTokenResult<String> {
21 serializer.encode(value).map_err(SaTokenError::from)
22}
23
24/// Decode storage string; auto-detects JSON / binary magic | 解码存储字符串;自动探测 JSON / 二进制魔数
25#[inline]
26pub fn decode_value<T: DeserializeOwned>(
27 serializer: &SharedSerializer,
28 raw: &str,
29) -> SaTokenResult<T> {
30 serializer.decode(raw).map_err(SaTokenError::from)
31}