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
f
Filename and full accesislbe path of the input json filefilter
A closure that can handle an input parameter of type T.
§Return
count
No of records that match the filter.
§Input types
T
The type of the structure.F
Closure 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));