Skip to main content

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

1/// A reference to a derived series resulting from applying a function to a set of arguments.
2#[derive(
3    Debug,
4    Clone,
5    conjure_object::serde::Serialize,
6    conjure_object::serde::Deserialize,
7    conjure_object::private::DeriveWith
8)]
9#[serde(crate = "conjure_object::serde")]
10#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
11#[conjure_object::private::staged_builder::staged_builder]
12#[builder(crate = conjure_object::private::staged_builder, update, inline)]
13pub struct FunctionDerivedSeries {
14    #[builder(custom(type = super::StringConstant, convert = Box::new))]
15    #[serde(rename = "moduleName")]
16    module_name: Box<super::StringConstant>,
17    #[builder(custom(type = super::StringConstant, convert = Box::new))]
18    #[serde(rename = "functionName")]
19    function_name: Box<super::StringConstant>,
20    #[builder(custom(type = super::ModuleVersionReference, convert = Box::new))]
21    #[serde(rename = "versionReference")]
22    version_reference: Box<super::ModuleVersionReference>,
23    #[builder(
24        default,
25        map(
26            key(type = super::FunctionParameterName),
27            value(type = super::FunctionParameterValue)
28        )
29    )]
30    #[serde(
31        rename = "functionArgs",
32        skip_serializing_if = "std::collections::BTreeMap::is_empty",
33        default
34    )]
35    function_args: std::collections::BTreeMap<
36        super::FunctionParameterName,
37        super::FunctionParameterValue,
38    >,
39}
40impl FunctionDerivedSeries {
41    /// Constructs a new instance of the type.
42    #[inline]
43    pub fn new(
44        module_name: super::StringConstant,
45        function_name: super::StringConstant,
46        version_reference: super::ModuleVersionReference,
47    ) -> Self {
48        Self::builder()
49            .module_name(module_name)
50            .function_name(function_name)
51            .version_reference(version_reference)
52            .build()
53    }
54    #[inline]
55    pub fn module_name(&self) -> &super::StringConstant {
56        &*self.module_name
57    }
58    #[inline]
59    pub fn function_name(&self) -> &super::StringConstant {
60        &*self.function_name
61    }
62    #[inline]
63    pub fn version_reference(&self) -> &super::ModuleVersionReference {
64        &*self.version_reference
65    }
66    /// Map of function input names to their values. The function inputs must match the function's parameter
67    /// names and types. An input must be specified for each of the referenced function's parameters.
68    #[inline]
69    pub fn function_args(
70        &self,
71    ) -> &std::collections::BTreeMap<
72        super::FunctionParameterName,
73        super::FunctionParameterValue,
74    > {
75        &self.function_args
76    }
77}