From 08a1139eaa7a4862ab8c0e5fb5fc6845fc711208 Mon Sep 17 00:00:00 2001 From: main Date: Thu, 19 Mar 2026 10:17:07 -0400 Subject: Initial libmcp 1.0.0 --- crates/libmcp-testkit/src/lib.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 crates/libmcp-testkit/src/lib.rs (limited to 'crates/libmcp-testkit/src') diff --git a/crates/libmcp-testkit/src/lib.rs b/crates/libmcp-testkit/src/lib.rs new file mode 100644 index 0000000..9f33643 --- /dev/null +++ b/crates/libmcp-testkit/src/lib.rs @@ -0,0 +1,32 @@ +//! Shared test helpers for `libmcp` consumers. + +use serde::de::DeserializeOwned; +use std::{ + fs::File, + io::{self, BufRead, BufReader}, + path::Path, +}; + +/// Reads an append-only JSONL file into typed records. +pub fn read_json_lines(path: &Path) -> io::Result> +where + T: DeserializeOwned, +{ + let file = File::open(path)?; + let reader = BufReader::new(file); + let mut records = Vec::new(); + for line in reader.lines() { + let line = line?; + if line.trim().is_empty() { + continue; + } + let parsed = serde_json::from_str::(line.as_str()).map_err(|error| { + io::Error::new( + io::ErrorKind::InvalidData, + format!("invalid JSONL test record: {error}"), + ) + })?; + records.push(parsed); + } + Ok(records) +} -- cgit v1.2.3