Skip to main content

DataFormat

Trait DataFormat 

Source
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§

Source

fn name(&self) -> &str

Source

fn marshal(&self, body: Body) -> Result<Body, CamelError>

Source

fn unmarshal(&self, body: Body) -> Result<Body, CamelError>

Provided Methods§

Source

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).

Source

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".

Implementors§