pub fn count_with_filter<'a, T, F>(f: String, filter: F) -> Result<i32>Expand description
Count the contents of a json file with filter specified.
§Arguments
fFilename and full accesislbe path of the input json filefilterA closure that can handle an input parameter of type T.
§Return
countNo of records that match the filter.
§Input types
TThe type of the structure.FClosure template with input function type.
§Example usage
use mmap_json_file;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
struct TestSimple {
a: Option<String>,
c: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
struct TestSimpleNested {
b: Option<TestSimple>,
c: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
struct TestSimpleCompound {
a: Option<TestSimpleNested>,
f: Option<String>,
}
let filter = |record: TestSimple| -> bool { record.a.unwrap() == "b" };
let _res = mmap_json_file::count_with_filter::<
TestSimple,
Box<dyn Fn(TestSimple) -> bool>,
>("data/test_simple.json".to_string(), Box::new(filter));