hdp_primitives/processed_types/
task.rs

1use alloy::primitives::B256;
2use serde::{Deserialize, Serialize};
3
4use super::{datalake_compute::ProcessedDatalakeCompute, module::ProcessedModule};
5
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
7#[serde(tag = "type", content = "context")]
8pub enum ProcessedTask {
9    #[serde(rename = "datalake_compute")]
10    DatalakeCompute(ProcessedDatalakeCompute),
11    #[serde(rename = "module")]
12    Module(ProcessedModule),
13}
14
15impl ProcessedTask {
16    pub fn get_task_commitment(&self) -> B256 {
17        match self {
18            ProcessedTask::DatalakeCompute(datalake_compute) => datalake_compute.task_commitment,
19            ProcessedTask::Module(module) => module.task_commitment,
20        }
21    }
22
23    pub fn get_task_proof(&self) -> Vec<B256> {
24        match self {
25            ProcessedTask::DatalakeCompute(datalake_compute) => datalake_compute.task_proof.clone(),
26            ProcessedTask::Module(module) => module.task_proof.clone(),
27        }
28    }
29}