pub struct SerializationRegistry { /* private fields */ }Expand description
序列化器注册表
管理序列化器的注册和查找
Implementations§
Source§impl SerializationRegistry
impl SerializationRegistry
Sourcepub fn register_defaults(&self)
pub fn register_defaults(&self)
注册内置序列化器
Sourcepub fn register(&self, name: &str, serializer: Arc<dyn Serializer>)
pub fn register(&self, name: &str, serializer: Arc<dyn Serializer>)
注册序列化器
§参数
name: 序列化器名称(用于查找)serializer: 序列化器实例
§示例
ⓘ
use flare_core::common::serializer::{SerializationRegistry, Serializer};
use std::sync::Arc;
struct MySerializer;
impl Serializer for MySerializer { /* ... */ }
let registry = SerializationRegistry::new();
registry.register("my_custom", Arc::new(MySerializer));Sourcepub fn find_by_format(
&self,
format: SerializationFormat,
) -> Option<Arc<dyn Serializer>>
pub fn find_by_format( &self, format: SerializationFormat, ) -> Option<Arc<dyn Serializer>>
根据格式类型查找序列化器
Sourcepub fn auto_detect(&self, data: &[u8]) -> Vec<Arc<dyn Serializer>>
pub fn auto_detect(&self, data: &[u8]) -> Vec<Arc<dyn Serializer>>
尝试自动检测序列化格式
遍历所有注册的序列化器,使用 can_detect 方法检测
Sourcepub fn global() -> &'static SerializationRegistry
pub fn global() -> &'static SerializationRegistry
获取全局注册表实例
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SerializationRegistry
impl RefUnwindSafe for SerializationRegistry
impl Send for SerializationRegistry
impl Sync for SerializationRegistry
impl Unpin for SerializationRegistry
impl UnsafeUnpin for SerializationRegistry
impl UnwindSafe for SerializationRegistry
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
Mutably borrows from an owned value. Read more