parse_with_metadata

Function parse_with_metadata 

Source
pub fn parse_with_metadata<T: DeserializeOwned>(
    input: &str,
) -> Result<(T, ParseMetadata)>
Expand description

Parses an LLM response and returns metadata about the parsing process.

This variant provides visibility into which strategy was used, timing information, and candidate evaluation details for debugging and observability.

§Examples

use tryparse::parse_with_metadata;
use serde::Deserialize;

#[derive(Deserialize)]
struct Data {
    value: i32,
}

let response = r#"{"value": 42}"#;
let (data, metadata) = parse_with_metadata::<Data>(response).unwrap();

println!("Strategy used: {}", metadata.strategy_used);
println!("Duration: {:?}", metadata.duration);
println!("Candidates evaluated: {}", metadata.candidates_evaluated);

§Errors

Returns ParseError::NoCandidates if no valid JSON could be extracted. Returns ParseError::AllCandidatesFailed if deserialization fails for all candidates.