pywr_v1_schema/parameters/
core.rs1use crate::parameters::{
2 ExternalDataRef, ParameterMeta, ParameterValue, ParameterValueType, ParameterValueTypeMut,
3 TableDataRef,
4};
5use pywr_v1_schema_macros::PywrParameter;
6use std::collections::HashMap;
7use std::path::PathBuf;
8
9#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
10pub struct ConstantParameter {
11 #[serde(flatten)]
12 pub meta: Option<ParameterMeta>,
13 #[serde(alias = "values", skip_serializing_if = "Option::is_none")]
14 pub value: Option<f64>,
15 #[serde(flatten, skip_serializing_if = "Option::is_none")]
16 pub external: Option<ExternalDataRef>,
17 #[serde(flatten, skip_serializing_if = "Option::is_none")]
18 pub table: Option<TableDataRef>,
19}
20
21impl ConstantParameter {
22 pub fn node_references(&self) -> HashMap<&str, &str> {
23 HashMap::new()
24 }
25}
26
27
28#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
29pub struct ConstantScenarioParameter {
30 #[serde(flatten)]
31 pub meta: Option<ParameterMeta>,
32 pub scenario: String,
33 #[serde(alias = "values", skip_serializing_if = "Option::is_none")]
34 pub values: Option<Vec<f64>>,
35 #[serde(flatten, skip_serializing_if = "Option::is_none")]
36 pub external: Option<ExternalDataRef>,
37 #[serde(flatten, skip_serializing_if = "Option::is_none")]
38 pub table: Option<TableDataRef>,
39}
40
41impl ConstantScenarioParameter {
42 pub fn node_references(&self) -> HashMap<&str, &str> {
43 HashMap::new()
44 }
45}
46
47#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
48pub struct MaxParameter {
49 #[serde(flatten)]
50 pub meta: Option<ParameterMeta>,
51 pub parameter: ParameterValue,
52 pub threshold: Option<f64>,
53}
54
55impl MaxParameter {
56 pub fn node_references(&self) -> HashMap<&str, &str> {
57 HashMap::new()
58 }
59}
60
61#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
62pub struct NegativeParameter {
63 #[serde(flatten)]
64 pub meta: Option<ParameterMeta>,
65 pub parameter: ParameterValue,
66}
67
68impl NegativeParameter {
69 pub fn node_references(&self) -> HashMap<&str, &str> {
70 HashMap::new()
71 }
72}
73
74#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
75pub struct MinParameter {
76 #[serde(flatten)]
77 pub meta: Option<ParameterMeta>,
78 pub parameter: ParameterValue,
79 pub threshold: Option<f64>,
80}
81
82impl MinParameter {
83 pub fn node_references(&self) -> HashMap<&str, &str> {
84 HashMap::new()
85 }
86}
87
88#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
89pub struct NegativeMinParameter {
90 #[serde(flatten)]
91 pub meta: Option<ParameterMeta>,
92 pub parameter: ParameterValue,
93 pub threshold: Option<f64>,
94}
95
96impl NegativeMinParameter {
97 pub fn node_references(&self) -> HashMap<&str, &str> {
98 HashMap::new()
99 }
100}
101
102#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
103pub struct NegativeMaxParameter {
104 #[serde(flatten)]
105 pub meta: Option<ParameterMeta>,
106 pub parameter: ParameterValue,
107 pub threshold: Option<f64>,
108}
109
110impl NegativeMaxParameter {
111 pub fn node_references(&self) -> HashMap<&str, &str> {
112 HashMap::new()
113 }
114}
115
116#[derive(serde::Deserialize, serde::Serialize, Debug, Clone, PywrParameter)]
117pub struct DivisionParameter {
118 #[serde(flatten)]
119 pub meta: Option<ParameterMeta>,
120 pub numerator: ParameterValue,
121 pub denominator: ParameterValue,
122}
123
124impl DivisionParameter {
125 pub fn node_references(&self) -> HashMap<&str, &str> {
126 HashMap::new()
127 }
128}