gproxy-transform 3.0.0-alpha.0

GPROXY v3 pairwise protocol transforms
Documentation
use gproxy_protocol::{claude, openai};

use crate::TransformError;

pub(crate) fn transform(body: bytes::Bytes) -> Result<bytes::Bytes, TransformError> {
    let input: openai::ResponseInputTokensResponse = serde_json::from_slice(&body)?;
    let output = transform_typed(input);
    Ok(bytes::Bytes::from(serde_json::to_vec(&output)?))
}

pub(crate) fn transform_typed(
    input: openai::ResponseInputTokensResponse,
) -> claude::CountTokensResponseBody {
    crate::wire!(claude::CountTokensResponseBody {
        input_tokens: u64::from(input.input_tokens),
        context_management: None,
        rest: Default::default(),
    })
}