Skip to main content

FormatCodec

Trait FormatCodec 

Source
pub trait FormatCodec: Send + Sync {
    // Required methods
    fn format(&self) -> FormatId;
    fn decode_request(
        &self,
        body: &Value,
        policy: &TranslationPolicy,
    ) -> Result<DecodedRequest>;
    fn encode_request(
        &self,
        request: &LlmRequest,
        policy: &TranslationPolicy,
    ) -> Result<EncodedRequest>;
    fn decode_response(
        &self,
        body: &Value,
        policy: &TranslationPolicy,
    ) -> Result<DecodedResponse>;
    fn encode_response(
        &self,
        response: &AggLlmResponse,
        policy: &TranslationPolicy,
    ) -> Result<EncodedResponse>;
}
Expand description

Codec contract for one buffered provider wire format.

Required Methods§

Source

fn format(&self) -> FormatId

Returns the format handled by this codec.

Source

fn decode_request( &self, body: &Value, policy: &TranslationPolicy, ) -> Result<DecodedRequest>

Decodes a request body into the neutral IR.

Source

fn encode_request( &self, request: &LlmRequest, policy: &TranslationPolicy, ) -> Result<EncodedRequest>

Encodes a neutral request into provider JSON.

Source

fn decode_response( &self, body: &Value, policy: &TranslationPolicy, ) -> Result<DecodedResponse>

Decodes a response body into the neutral IR.

Source

fn encode_response( &self, response: &AggLlmResponse, policy: &TranslationPolicy, ) -> Result<EncodedResponse>

Encodes a neutral response into provider JSON.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§