ergo_runtime/source/implementations/context_string/
manifest.rs1use crate::common::ValueType;
2use crate::source::{
3 Cadence, ContextRequirement, ExecutionSpec, OutputSpec, ParameterSpec, ParameterValue,
4 SourceKind, SourcePrimitiveManifest, SourceRequires, StateSpec,
5};
6
7pub fn context_string_source_manifest() -> SourcePrimitiveManifest {
8 SourcePrimitiveManifest {
9 id: "context_string_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::String,
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::String,
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}