hdp_primitives/solidity_types/
traits.rs1use alloy::primitives::B256;
2use anyhow::Result;
3
4use crate::task::datalake::datalake_type::DatalakeType;
5
6pub trait DatalakeCodecs {
10 fn get_datalake_type(&self) -> DatalakeType;
11 fn encode(&self) -> Result<Vec<u8>>;
12 fn commit(&self) -> B256;
13 fn decode(encoded: &[u8]) -> Result<Self>
14 where
15 Self: Sized;
16}
17
18pub trait Codecs {
19 fn encode(&self) -> Result<Vec<u8>>;
20 fn decode(encoded: &[u8]) -> Result<Self>
21 where
22 Self: Sized;
23}
24
25pub trait DatalakeComputeCodecs {
27 fn decode(encoded_datalake: &[u8], encoded_compute: &[u8]) -> Result<Self>
28 where
29 Self: std::marker::Sized;
30 fn encode(&self) -> Result<Vec<u8>>;
31 fn commit(&self) -> B256;
32}
33
34pub trait BatchedDatalakeComputeCodecs {
36 fn decode(encoded_datalake: &[u8], encoded_compute: &[u8]) -> Result<Self>
37 where
38 Self: std::marker::Sized;
39 fn encode(&self) -> Result<(Vec<u8>, Vec<u8>)>;
40}