pub struct MessageParser { /* private fields */ }Expand description
消息解析器
Implementations§
Source§impl MessageParser
impl MessageParser
Sourcepub fn new(
format: SerializationFormat,
compression: CompressionAlgorithm,
encryption: EncryptionAlgorithm,
) -> Self
pub fn new( format: SerializationFormat, compression: CompressionAlgorithm, encryption: EncryptionAlgorithm, ) -> Self
创建新的消息解析器
Sourcepub fn with_custom_format(
format_name: &str,
compression: CompressionAlgorithm,
encryption: EncryptionAlgorithm,
) -> Self
pub fn with_custom_format( format_name: &str, compression: CompressionAlgorithm, encryption: EncryptionAlgorithm, ) -> Self
创建使用自定义序列化格式的解析器
§参数
format_name: 自定义序列化格式名称(必须在注册表中注册)compression: 压缩算法encryption: 加密算法
§示例
use flare_core::common::message::MessageParser;
use flare_core::common::compression::CompressionAlgorithm;
use flare_core::common::encryption::EncryptionAlgorithm;
// 创建使用自定义格式的解析器
let parser = MessageParser::with_custom_format(
"messagepack",
CompressionAlgorithm::None,
EncryptionAlgorithm::None,
);Sourcepub fn new_with_format_compression(
format: SerializationFormat,
compression: CompressionAlgorithm,
) -> Self
pub fn new_with_format_compression( format: SerializationFormat, compression: CompressionAlgorithm, ) -> Self
创建使用指定格式和压缩的解析器
Sourcepub fn default_format(&self) -> SerializationFormat
pub fn default_format(&self) -> SerializationFormat
获取默认序列化格式
Sourcepub fn default_compression(&self) -> CompressionAlgorithm
pub fn default_compression(&self) -> CompressionAlgorithm
获取默认压缩算法
Sourcepub fn default_encryption(&self) -> EncryptionAlgorithm
pub fn default_encryption(&self) -> EncryptionAlgorithm
获取默认加密算法
Sourcepub fn parse(&self, data: &[u8]) -> Result<Frame>
pub fn parse(&self, data: &[u8]) -> Result<Frame>
解析消息(自动检测格式、压缩和加密)
处理流程:解密 -> 解压缩 -> 反序列化 默认使用容错模式(解密失败时尝试作为未加密数据处理)
Sourcepub fn parse_with_format(
&self,
data: &[u8],
format: SerializationFormat,
) -> Result<Frame>
pub fn parse_with_format( &self, data: &[u8], format: SerializationFormat, ) -> Result<Frame>
根据指定格式解析消息
Sourcepub fn serialize_with_format(
&self,
frame: &Frame,
format: SerializationFormat,
compression: CompressionAlgorithm,
encryption: EncryptionAlgorithm,
) -> Result<Vec<u8>>
pub fn serialize_with_format( &self, frame: &Frame, format: SerializationFormat, compression: CompressionAlgorithm, encryption: EncryptionAlgorithm, ) -> Result<Vec<u8>>
序列化消息(指定格式、压缩和加密)
处理流程:序列化 -> 压缩 -> 加密
Sourcepub fn serialize_with_format_compression(
&self,
frame: &Frame,
format: SerializationFormat,
compression: CompressionAlgorithm,
) -> Result<Vec<u8>>
pub fn serialize_with_format_compression( &self, frame: &Frame, format: SerializationFormat, compression: CompressionAlgorithm, ) -> Result<Vec<u8>>
序列化消息(指定格式和压缩,使用默认加密)
Sourcepub fn get_compression_from_frame(frame: &Frame) -> CompressionAlgorithm
pub fn get_compression_from_frame(frame: &Frame) -> CompressionAlgorithm
从 Frame 的 metadata 中读取压缩算法
Sourcepub fn should_compress_payload(
payload_len: usize,
compression: &CompressionAlgorithm,
) -> bool
pub fn should_compress_payload( payload_len: usize, compression: &CompressionAlgorithm, ) -> bool
判断序列化后的 payload 是否必须按协商结果压缩。
Sourcepub fn get_format_from_frame(frame: &Frame) -> Option<SerializationFormat>
pub fn get_format_from_frame(frame: &Frame) -> Option<SerializationFormat>
从 Frame 的 metadata 中读取序列化格式
Sourcepub fn get_encryption_from_frame(frame: &Frame) -> EncryptionAlgorithm
pub fn get_encryption_from_frame(frame: &Frame) -> EncryptionAlgorithm
从 Frame 的 metadata 中读取加密算法
Trait Implementations§
Source§impl Clone for MessageParser
impl Clone for MessageParser
Source§fn clone(&self) -> MessageParser
fn clone(&self) -> MessageParser
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MessageParser
impl RefUnwindSafe for MessageParser
impl Send for MessageParser
impl Sync for MessageParser
impl Unpin for MessageParser
impl UnsafeUnpin for MessageParser
impl UnwindSafe for MessageParser
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