synaptic_eval/
json_validity.rs1use async_trait::async_trait;
2use synaptic_core::SynapticError;
3
4use crate::evaluator::{EvalResult, Evaluator};
5
6pub struct JsonValidityEvaluator;
8
9impl JsonValidityEvaluator {
10 pub fn new() -> Self {
11 Self
12 }
13}
14
15impl Default for JsonValidityEvaluator {
16 fn default() -> Self {
17 Self::new()
18 }
19}
20
21#[async_trait]
22impl Evaluator for JsonValidityEvaluator {
23 async fn evaluate(
24 &self,
25 prediction: &str,
26 _reference: &str,
27 _input: &str,
28 ) -> Result<EvalResult, SynapticError> {
29 match serde_json::from_str::<serde_json::Value>(prediction) {
30 Ok(_) => Ok(EvalResult::pass()),
31 Err(e) => Ok(EvalResult::fail().with_reasoning(format!("Invalid JSON: {}", e))),
32 }
33 }
34}