llmshim 0.12.1

Blazing fast LLM API translation layer in pure Rust
Documentation
#[cfg(feature = "proxy")]
pub(crate) use llmshim_catalog::bounded_json::{measure_value, parse_slice_with_usage, Usage};
pub(crate) use llmshim_catalog::bounded_json::{parse_slice, parse_str, Limits, ParseError};

pub(crate) fn enforce_sse_complexity(input: &str) -> crate::error::Result<()> {
    match parse_str(input, Limits::SSE) {
        Ok(_) | Err(ParseError::Malformed(_)) => Ok(()),
        Err(ParseError::Complexity) => Err(crate::error::ShimError::Stream(
            "upstream JSON exceeds complexity limit".into(),
        )),
    }
}

pub(crate) fn bounded_json_complete(input: &str, limits: Limits) -> crate::error::Result<bool> {
    match parse_str(input, limits) {
        Ok(_) => Ok(true),
        Err(ParseError::Malformed(_)) => Ok(false),
        Err(ParseError::Complexity) => Err(crate::error::ShimError::Stream(
            "upstream JSON exceeds complexity limit".into(),
        )),
    }
}