mod classify;
mod constants;
mod core;
mod error;
mod indices;
mod types;
pub mod c_api;
pub mod config;
pub mod memory;
pub static ENABLE_TIMING: std::sync::atomic::AtomicBool = std::sync::atomic::AtomicBool::new(false);
#[inline]
pub fn log_timing(phase: &str, elapsed_ms: u128) {
if ENABLE_TIMING.load(std::sync::atomic::Ordering::Relaxed) {
eprintln!("[TIMING] {}: {}ms", phase, elapsed_ms);
}
}
#[cfg(feature = "arrow-ffi")]
pub mod arrow;
pub use error::{FirstErrorCapture, Result as RypeResult, RypeError};
pub use types::{BucketFileStats, HitResult, IndexMetadata, QueryRecord};
pub use indices::{InvertedIndex, ShardedInvertedIndex};
pub use core::{extract_into, get_paired_minimizers_into, MinimizerWorkspace, Strand};
pub use classify::{
classify_batch_sharded_merge_join, classify_batch_sharded_parallel_rg,
classify_from_extracted_minimizers, classify_from_extracted_minimizers_parallel_rg,
classify_from_query_index, classify_from_query_index_parallel_rg,
classify_with_sharded_negative, extract_batch_minimizers, filter_best_hits,
};
pub use classify::log_ratio::{
classify_log_ratio_batch, compute_log_ratio, partition_by_numerator_score,
validate_compatible_indices, validate_log_ratio_indices, validate_single_bucket_index,
FastPath, LogRatioResult, PartitionResult,
};
pub use core::{
base_to_bit, count_hits, extract_dual_strand_into, extract_minimizer_set,
extract_strand_minimizers, StrandMinimizers,
};
pub use core::{choose_orientation, choose_orientation_sampled, Orientation, ORIENTATION_FIRST_N};
pub use core::{kway_merge_dedup, merge_sorted_into};
pub use constants::BUCKET_SOURCE_DELIM;
pub use indices::{
QueryInvertedIndex,
ShardInfo,
ShardManifest,
};
pub use indices::{
compute_source_hash, create_parquet_inverted_index, is_parquet_index, BucketData,
BucketMetadata, InvertedManifest, InvertedShardInfo, ParquetCompression, ParquetManifest,
ParquetReadOptions, ParquetWriteOptions,
};
pub use indices::parquet::merge::{
load_all_minimizers, merge_indices_streaming, MergeOptions, MergeStats,
};
pub use indices::parquet as parquet_index;