use crate::utils::{direct_function_translation, function_translation_respecting_ignore_nulls};
use crate::TranslationRegistry;
use hamelin_lib::func::defs::{
CumeDist, DenseRank, FirstValue, Lag, LastValue, Lead, NthValue, PercentRank, Rank, RowNumber,
};
pub fn register(registry: &mut TranslationRegistry) {
registry.register::<RowNumber>(direct_function_translation);
registry.register::<Rank>(direct_function_translation);
registry.register::<DenseRank>(direct_function_translation);
registry.register::<Lag>(function_translation_respecting_ignore_nulls);
registry.register::<Lead>(function_translation_respecting_ignore_nulls);
registry.register::<FirstValue>(function_translation_respecting_ignore_nulls);
registry.register::<LastValue>(function_translation_respecting_ignore_nulls);
registry.register::<NthValue>(function_translation_respecting_ignore_nulls);
registry.register::<CumeDist>(direct_function_translation);
registry.register::<PercentRank>(direct_function_translation);
}