#![cfg_attr(coverage_nightly, coverage(off))]
use std::collections::HashMap;
pub struct RrfFusion {
k: f32,
}
#[derive(Debug, Clone)]
pub struct RankedDocument {
pub id: String,
pub original_score: f32,
pub source: String,
pub metadata: DocumentMetadata,
}
#[derive(Debug, Clone, Default)]
pub struct DocumentMetadata {
pub path: String,
pub name: String,
pub line_or_timestamp: i64,
pub related_commits: Vec<String>,
}
#[derive(Debug, Clone)]
pub struct FusedResult {
pub id: String,
pub rrf_score: f32,
pub source_scores: HashMap<String, f32>,
pub metadata: DocumentMetadata,
pub primary_source: String,
}
impl Default for RrfFusion {
fn default() -> Self {
Self::new()
}
}
struct FusedResultBuilder {
id: String,
total_rrf: f32,
source_scores: HashMap<String, f32>,
best_metadata: DocumentMetadata,
best_score: f32,
primary_source: String,
}
include!("rrf_fusion_scoring.rs");
include!("rrf_fusion_tests.rs");