use super::config::AlignmentConfig;
use crate::data::OwnedDataRow as RowValue;
use chrono::{DateTime, Utc};
use std::collections::HashMap;
#[derive(Debug, Clone)]
pub struct AlignedData {
pub ids: Vec<String>,
pub data: Vec<Vec<RowValue>>,
pub timestamps: Vec<i64>,
pub metadata: AlignmentMetadata,
}
#[derive(Debug, Clone)]
pub struct AlignmentMetadata {
pub original_count: HashMap<String, usize>,
pub aligned_count: usize,
pub gaps_filled: HashMap<String, usize>,
pub time_range: (DateTime<Utc>, DateTime<Utc>),
pub config: AlignmentConfig,
}
#[derive(Debug, Clone)]
pub struct Divergence {
pub timestamp: i64,
pub index: usize,
pub id1_trend: f64,
pub id2_trend: f64,
pub strength: f64,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum JoinType {
Inner,
Left,
Right,
Full,
}