Skip to main content

ergo_runtime/source/implementations/context_bool/
manifest.rs

1use crate::common::ValueType;
2use crate::source::{
3    Cadence, ContextRequirement, ExecutionSpec, OutputSpec, ParameterSpec, ParameterValue,
4    SourceKind, SourcePrimitiveManifest, SourceRequires, StateSpec,
5};
6
7pub fn context_bool_source_manifest() -> SourcePrimitiveManifest {
8    SourcePrimitiveManifest {
9        id: "context_bool_source".to_string(),
10        version: "0.1.0".to_string(),
11        kind: SourceKind::Source,
12        inputs: vec![],
13        outputs: vec![OutputSpec {
14            name: "value".to_string(),
15            value_type: ValueType::Bool,
16        }],
17        parameters: vec![ParameterSpec {
18            name: "key".to_string(),
19            value_type: ParameterValue::String(String::new()).value_type(),
20            default: Some(ParameterValue::String("x".to_string())),
21            bounds: None,
22        }],
23        requires: SourceRequires {
24            context: vec![ContextRequirement {
25                name: "$key".to_string(),
26                ty: ValueType::Bool,
27                required: false,
28            }],
29        },
30        execution: ExecutionSpec {
31            deterministic: true,
32            cadence: Cadence::Continuous,
33        },
34        state: StateSpec { allowed: false },
35        side_effects: false,
36    }
37}