pub trait DataFormat:
Send
+ Sync
+ 'static {
// Required methods
fn name(&self) -> &str;
fn marshal(&self, body: Body) -> Result<Body, CamelError>;
fn unmarshal(&self, body: Body) -> Result<Body, CamelError>;
// Provided methods
fn marshal_in_exchange(
&self,
exchange: &mut Exchange,
body: Body,
) -> Result<Body, CamelError> { ... }
fn unmarshal_in_exchange(
&self,
exchange: &mut Exchange,
body: Body,
) -> Result<Body, CamelError> { ... }
}Required Methods§
fn name(&self) -> &str
fn marshal(&self, body: Body) -> Result<Body, CamelError>
fn unmarshal(&self, body: Body) -> Result<Body, CamelError>
Provided Methods§
Sourcefn marshal_in_exchange(
&self,
exchange: &mut Exchange,
body: Body,
) -> Result<Body, CamelError>
fn marshal_in_exchange( &self, exchange: &mut Exchange, body: Body, ) -> Result<Body, CamelError>
Exchange-aware marshal hook. Default delegates to marshal.
Override when the format needs Exchange context (e.g., writing
metadata headers like CamelCsvHeaderRecord).
Sourcefn unmarshal_in_exchange(
&self,
exchange: &mut Exchange,
body: Body,
) -> Result<Body, CamelError>
fn unmarshal_in_exchange( &self, exchange: &mut Exchange, body: Body, ) -> Result<Body, CamelError>
Exchange-aware unmarshal hook. Default delegates to unmarshal.
Override when the format needs Exchange context (e.g., capturing
metadata headers like CamelCsvHeaderRecord).
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".