mod common;
use common::*;
use tfrecord::{Example, FeatureKind};
#[test]
fn indexer_iter_test() -> Result<()> {
tfrecord::indexer::load_paths([&*INPUT_TFRECORD_PATH], Default::default())
.map(|index| {
let example: Example = index?.load()?;
anyhow::Ok(example)
})
.enumerate()
.map(|(index, example)| anyhow::Ok((index, example?)))
.try_for_each(|args| {
let (example_index, example) = args?;
for (feature_index, (name, feature)) in example.into_iter().enumerate() {
print!("{}\t{}\t{}\t", example_index, feature_index, name);
use FeatureKind as F;
match feature.into_kinds() {
Some(F::Bytes(value)) => {
eprintln!("bytes\t{}", value.len());
}
Some(F::F32(value)) => {
eprintln!("float\t{}", value.len());
}
Some(F::I64(value)) => {
eprintln!("int64\t{}", value.len());
}
None => {
eprintln!("none");
}
}
}
anyhow::Ok(())
})?;
Ok(())
}