pub struct SagaPayload {
pub content_type: String,
pub schema_id: String,
pub body: Vec<u8>,
}Expand description
业务作用:在 API、Outbox 与参与方之间保留正文的精确字节和 schema 身份。
Fields§
§content_type: String正文的规范媒体类型。
schema_id: String与冻结步骤一致的 schema 身份。
body: Vec<u8>原始业务字节;JSON 空白、整数文本和对象字段顺序均保持不变。
Implementations§
Source§impl SagaPayload
impl SagaPayload
Sourcepub fn new(
content_type: impl Into<String>,
schema_id: impl Into<String>,
body: Vec<u8>,
) -> Result<SagaPayload, SagaPayloadError>
pub fn new( content_type: impl Into<String>, schema_id: impl Into<String>, body: Vec<u8>, ) -> Result<SagaPayload, SagaPayloadError>
业务作用:构造可进入摘要和持久消息的原始正文,不重新编码业务内容。
参数说明:content_type 与 schema_id 声明解释合同,body 是原始字节。
返回:合同合法时返回正文;非法媒体类型、schema 或 JSON 返回错误。
Sourcepub fn validate(&self) -> Result<(), SagaPayloadError>
pub fn validate(&self) -> Result<(), SagaPayloadError>
业务作用:在进入摘要、业务解码或持久消息前复验公开正文结构。
参数说明: 无。
返回:媒体与 schema 合法、JSON 可解析时成功;不改写原始正文。
Sourcepub fn contract(&self) -> SagaPayloadContract
pub fn contract(&self) -> SagaPayloadContract
业务作用:提取定义与 capability 必须共同确认的正文解释合同。
参数说明: 无。
返回:不包含业务字节的媒体类型和 schema 身份。
Sourcepub fn json(value: Value) -> SagaPayload
pub fn json(value: Value) -> SagaPayload
业务作用:把已有 JSON 值转换为无 schema 的规范 JSON 字节正文。
参数说明:value 是调用方已经解析的 JSON 值。
返回:无损整数序列化的 JSON 正文;需要保留输入文本时使用 new。
Trait Implementations§
Source§impl Clone for SagaPayload
impl Clone for SagaPayload
Source§fn clone(&self) -> SagaPayload
fn clone(&self) -> SagaPayload
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 moreSource§impl Debug for SagaPayload
impl Debug for SagaPayload
Source§impl<'de> Deserialize<'de> for SagaPayload
impl<'de> Deserialize<'de> for SagaPayload
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SagaPayload, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SagaPayload, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for SagaPayload
Source§impl PartialEq for SagaPayload
impl PartialEq for SagaPayload
Source§impl Serialize for SagaPayload
impl Serialize for SagaPayload
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for SagaPayload
Auto Trait Implementations§
impl Freeze for SagaPayload
impl RefUnwindSafe for SagaPayload
impl Send for SagaPayload
impl Sync for SagaPayload
impl Unpin for SagaPayload
impl UnsafeUnpin for SagaPayload
impl UnwindSafe for SagaPayload
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