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.