clique_types/manifest/
compat.rs1use super::ProofType;
2
3use serde::{Deserialize, Serialize};
4
5pub type TaskCompatibility = (TaskCompatType, Vec<ProofType>);
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub enum TaskCompatType {
9 EVM,
10 WASM,
11 BuiltIn(String),
12}
13
14impl TaskCompatType {
15 pub fn is_evm(&self) -> bool {
16 matches!(self, TaskCompatType::EVM)
17 }
18
19 pub fn is_wasm(&self) -> bool {
20 matches!(self, TaskCompatType::WASM)
21 }
22
23 pub fn is_builtin(&self) -> bool {
24 matches!(self, TaskCompatType::BuiltIn(_))
25 }
26
27 pub fn as_builtin(&self) -> Option<&str> {
28 match self {
29 Self::BuiltIn(name) => Some(&name),
30 _ => None,
31 }
32 }
33}
34
35impl From<&str> for TaskCompatType {
36 fn from(value: &str) -> Self {
37 Self::BuiltIn(value.to_string())
38 }
39}
40
41impl From<String> for TaskCompatType {
42 fn from(value: String) -> Self {
43 Self::BuiltIn(value)
44 }
45}