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§
Sourcefn decode_request(
&self,
body: &Value,
policy: &TranslationPolicy,
) -> Result<DecodedRequest>
fn decode_request( &self, body: &Value, policy: &TranslationPolicy, ) -> Result<DecodedRequest>
Decodes a request body into the neutral IR.
Sourcefn encode_request(
&self,
request: &LlmRequest,
policy: &TranslationPolicy,
) -> Result<EncodedRequest>
fn encode_request( &self, request: &LlmRequest, policy: &TranslationPolicy, ) -> Result<EncodedRequest>
Encodes a neutral request into provider JSON.
Sourcefn decode_response(
&self,
body: &Value,
policy: &TranslationPolicy,
) -> Result<DecodedResponse>
fn decode_response( &self, body: &Value, policy: &TranslationPolicy, ) -> Result<DecodedResponse>
Decodes a response body into the neutral IR.
Sourcefn encode_response(
&self,
response: &AggLlmResponse,
policy: &TranslationPolicy,
) -> Result<EncodedResponse>
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".