use anyhow::Result;
use datalake_compute::DatalakeComputeCompilationResults;
use hdp_primitives::datalake::task::DatalakeCompute;
use crate::pre_processor::PreProcessorConfig;
pub mod datalake_compute;
pub mod module;
pub struct Compiler {
pub(crate) datalake: datalake_compute::DatalakeCompiler,
}
impl Compiler {
pub fn new(config: PreProcessorConfig) -> Self {
Self {
datalake: datalake_compute::DatalakeCompiler::new_from_config(config.datalake_config),
}
}
pub async fn compile(
&self,
datalake_tasks: &[DatalakeCompute],
) -> Result<DatalakeComputeCompilationResults> {
let datalake_result = self.datalake.compile(datalake_tasks).await?;
Ok(datalake_result)
}
}