documents! macro accepts a single object again

This commit is contained in:
Louis Dureuil 2024-11-19 12:02:26 +01:00 committed by Clément Renault
parent 32d0e50a75
commit 1aef0e4037
No known key found for this signature in database
GPG key ID: F250A4C4E3AE5F5F
2 changed files with 13 additions and 3 deletions

View file

@ -151,8 +151,17 @@ macro_rules! documents {
($data:tt) => {{
let documents = serde_json::json!($data);
let mut file = tempfile::tempfile().unwrap();
for document in documents.as_array().unwrap() {
serde_json::to_writer(&mut file, &document).unwrap();
match documents {
serde_json::Value::Array(vec) => {
for document in vec {
serde_json::to_writer(&mut file, &document).unwrap();
}
}
serde_json::Value::Object(document) => {
serde_json::to_writer(&mut file, &document).unwrap();
}
_ => unimplemented!("The `documents!` macro only support Objects and Array"),
}
file.sync_all().unwrap();
unsafe { memmap2::Mmap::map(&file).unwrap() }