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:正文解释合同的 schema 身份,可按 validate 规则为空。body:需要完整保留的原始正文。
返回:保存原始字节且 validate 通过时返回正文,媒体类型、schema 或适用的 JSON 校验失败时报错,不重新编码正文或证明业务 schema 语义。
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 值。
返回:返回 application/json、空 schema_id 与 JSON 值重新序列化的字节;不保留原始空白或字段文本形式,也不执行外部 schema 校验。
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 Forget for SagaPayload
impl Freeze for SagaPayload
impl Move 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