use std::collections::{HashMap, HashSet};
pub mod column_builder;
pub mod label_spill;
pub mod loader;
pub mod parallel_bz2;
pub mod parser;
pub mod writer;
pub use column_builder::{ColMapEntry, ColumnTypeMeta, FixedColMeta, RegionMeta, StrColMeta};
pub use loader::load_ntriples;
pub enum ProgressValue {
U64(u64),
}
pub enum ProgressEvent<'a> {
Start {
phase: &'a str,
label: &'a str,
total: Option<u64>,
unit: &'a str,
},
Update {
phase: &'a str,
current: u64,
fields: &'a [(&'a str, ProgressValue)],
},
Complete {
phase: &'a str,
elapsed_s: f64,
fields: &'a [(&'a str, ProgressValue)],
},
}
pub struct Cancelled;
pub trait ProgressSink: Send + Sync {
fn emit(&self, event: ProgressEvent<'_>) -> Result<(), Cancelled>;
}
pub struct NTriplesStats {
pub triples_scanned: u64,
pub entities_created: u64,
pub edges_created: u64,
pub edges_skipped: u64, pub seconds: f64,
}
pub struct NTriplesConfig {
pub predicates: Option<HashSet<String>>,
pub languages: Option<HashSet<String>>,
pub node_types: HashMap<String, String>,
pub predicate_labels: HashMap<String, String>,
pub max_entities: Option<usize>,
pub max_triples: Option<u64>,
pub verbose: bool,
pub auto_type: bool,
pub progress: Option<Box<dyn ProgressSink>>,
}