Skip to main content

nominal_api/conjure/objects/scout/compute/api/
context.rs

1#[derive(
2    Debug,
3    Clone,
4    conjure_object::serde::Serialize,
5    conjure_object::serde::Deserialize,
6    conjure_object::private::DeriveWith
7)]
8#[serde(crate = "conjure_object::serde")]
9#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
10#[conjure_object::private::staged_builder::staged_builder]
11#[builder(crate = conjure_object::private::staged_builder, update, inline)]
12pub struct Context {
13    #[builder(
14        default,
15        map(key(type = super::VariableName), value(type = super::VariableValue))
16    )]
17    #[serde(
18        rename = "variables",
19        skip_serializing_if = "std::collections::BTreeMap::is_empty",
20        default
21    )]
22    variables: std::collections::BTreeMap<super::VariableName, super::VariableValue>,
23    #[builder(default, into)]
24    #[serde(
25        rename = "functionVariables",
26        skip_serializing_if = "Option::is_none",
27        default
28    )]
29    function_variables: Option<
30        std::collections::BTreeMap<super::FunctionReference, super::FunctionVariables>,
31    >,
32    #[builder(
33        default,
34        map(key(type = super::DatasetReferenceName), value(type = super::Dataset))
35    )]
36    #[serde(
37        rename = "datasetReferences",
38        skip_serializing_if = "std::collections::BTreeMap::is_empty",
39        default
40    )]
41    dataset_references: std::collections::BTreeMap<
42        super::DatasetReferenceName,
43        super::Dataset,
44    >,
45    #[builder(default, into)]
46    #[serde(
47        rename = "frameReferences",
48        skip_serializing_if = "Option::is_none",
49        default
50    )]
51    frame_references: Option<
52        std::collections::BTreeMap<super::DatasetReferenceName, super::Dataset>,
53    >,
54    #[builder(
55        default,
56        custom(
57            type = impl
58            Into<Option<super::FillStrategy>>,
59            convert = |v|v.into().map(Box::new)
60        )
61    )]
62    #[serde(
63        rename = "defaultFillStrategy",
64        skip_serializing_if = "Option::is_none",
65        default
66    )]
67    default_fill_strategy: Option<Box<super::FillStrategy>>,
68}
69impl Context {
70    /// Constructs a new instance of the type.
71    #[inline]
72    pub fn new() -> Self {
73        Self::builder().build()
74    }
75    #[inline]
76    pub fn variables(
77        &self,
78    ) -> &std::collections::BTreeMap<super::VariableName, super::VariableValue> {
79        &self.variables
80    }
81    #[deprecated(
82        note = "This field is deprecated and will be removed in a future version.\n"
83    )]
84    #[inline]
85    pub fn function_variables(
86        &self,
87    ) -> Option<
88        &std::collections::BTreeMap<super::FunctionReference, super::FunctionVariables>,
89    > {
90        self.function_variables.as_ref().map(|o| &*o)
91    }
92    /// Named datasets looked up by `DatasetReference` nodes in the compute tree.
93    #[inline]
94    pub fn dataset_references(
95        &self,
96    ) -> &std::collections::BTreeMap<super::DatasetReferenceName, super::Dataset> {
97        &self.dataset_references
98    }
99    /// Named datasets looked up by `DatasetReference` nodes in the compute tree.
100    #[deprecated(note = "use datasetReferences instead.")]
101    #[inline]
102    pub fn frame_references(
103        &self,
104    ) -> Option<
105        &std::collections::BTreeMap<super::DatasetReferenceName, super::Dataset>,
106    > {
107        self.frame_references.as_ref().map(|o| &*o)
108    }
109    /// Default fill strategy applied at every multi-input alignment boundary
110    /// where no per-node interpolationConfiguration is specified. When absent, falls back
111    /// to the server-configured default (forward fill with a 1 second fill limit).
112    #[inline]
113    pub fn default_fill_strategy(&self) -> Option<&super::FillStrategy> {
114        self.default_fill_strategy.as_ref().map(|o| &**o)
115    }
116}