use std::{fs::File, io::BufReader, path::Path}; use nftables::schema::Nftables; use serde::de::Error; fn test_deserialize_json_files(path: &Path) -> datatest_stable::Result<()> { println!("Deserializing file: {}", path.display()); let file = File::open(path).expect("Cannot open file"); let reader = BufReader::new(file); let jd = &mut serde_json::Deserializer::from_reader(reader); let result: Result = serde_path_to_error::deserialize(jd); match result { Ok(nf) => { println!("Deserialized document: {:?}", nf); Ok(()) } Err(err) => Err(serde_json::error::Error::custom(format!( "Path: {}. Original error: {}", err.path(), err )) .into()), } } datatest_stable::harness!(test_deserialize_json_files, "resources/test/json", r"^.*/*",);