parse_sap_odata/sap_annotations/property/
mod.rs

1#[cfg(feature = "parser")]
2pub mod metadata;
3
4use serde::{Deserialize, Serialize};
5
6use crate::{
7    sap_annotations::{
8        aggregation_role::SAPAggregationRoleProperty, de_str_to_bool, default_false, default_true,
9        display_format::SAPDisplayFormatProperty, field_control::SAPFieldControlProperty,
10        filter_restriction::SAPFilterRestrictionProperty, parameter::SAPParameterProperty,
11    },
12    sap_semantics::property::SAPSemanticsProperty,
13};
14
15// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
16#[derive(PartialEq, Eq, PartialOrd, Ord, Clone, Debug, Serialize, Deserialize)]
17#[serde(rename_all = "PascalCase")]
18pub struct SAPAnnotationsProperty {
19    #[serde(rename = "@label")]
20    pub label: Option<String>,
21    #[serde(rename = "@heading")]
22    pub heading: Option<String>,
23    #[serde(rename = "@quickinfo")]
24    pub quick_info: Option<String>,
25    #[serde(
26        rename = "@unicode",
27        deserialize_with = "de_str_to_bool",
28        default = "default_false"
29    )]
30    pub is_unicode: bool,
31    #[serde(rename = "@semantics")]
32    pub semantics: Option<SAPSemanticsProperty>,
33    #[serde(
34        rename = "@creatable",
35        deserialize_with = "de_str_to_bool",
36        default = "default_true"
37    )]
38    pub is_creatable: bool,
39    #[serde(
40        rename = "@updatable",
41        deserialize_with = "de_str_to_bool",
42        default = "default_true"
43    )]
44    pub is_updatable: bool,
45    #[serde(
46        rename = "@sortable",
47        deserialize_with = "de_str_to_bool",
48        default = "default_true"
49    )]
50    pub is_sortable: bool,
51    #[serde(
52        rename = "@filterable",
53        deserialize_with = "de_str_to_bool",
54        default = "default_true"
55    )]
56    pub is_filterable: bool,
57    #[serde(
58        rename = "@addressable",
59        deserialize_with = "de_str_to_bool",
60        default = "default_true"
61    )]
62    pub is_addressable: bool,
63    #[serde(
64        rename = "@required-in-filter",
65        deserialize_with = "de_str_to_bool",
66        default = "default_false"
67    )]
68    pub is_required_in_filter: bool,
69    #[serde(rename = "@filter-restriction")]
70    pub filter_restriction: Option<SAPFilterRestrictionProperty>,
71    #[serde(rename = "@filter-for")]
72    pub filter_for: Option<String>,
73    #[serde(rename = "@text")]
74    pub text: Option<String>,
75    #[serde(rename = "@text-for")]
76    pub text_for: Option<String>,
77    #[serde(rename = "@unit")]
78    pub unit: Option<String>,
79    #[serde(rename = "@precision")]
80    pub precision: Option<String>,
81    #[serde(
82        rename = "@visible",
83        deserialize_with = "de_str_to_bool",
84        default = "default_true"
85    )]
86    pub is_visible: bool,
87    #[serde(rename = "@field-control")]
88    pub field_control: Option<SAPFieldControlProperty>,
89    #[serde(rename = "@validation-regexp")]
90    pub validation_regexp: Option<String>,
91    #[serde(rename = "@display-format")]
92    pub display_format: Option<SAPDisplayFormatProperty>,
93    #[serde(rename = "@value-list")]
94    pub value_list: Option<String>,
95    #[serde(rename = "@lower-boundary")]
96    pub lower_boundary: Option<String>,
97    #[serde(rename = "@upper-boundary")]
98    pub upper_boundary: Option<String>,
99    #[serde(rename = "@aggregation-role")]
100    pub aggregation_role: Option<SAPAggregationRoleProperty>,
101    #[serde(rename = "@super-ordinate")]
102    pub super_ordinate: Option<String>,
103    #[serde(rename = "@attribute-for")]
104    pub attribute_for: Option<String>,
105    #[serde(rename = "@hierarchy-node-for")]
106    pub hierarchy_node_for: Option<String>,
107    #[serde(rename = "@hierarchy-node-external-key-for")]
108    pub hierarchy_node_external_key_for: Option<String>,
109    #[serde(rename = "@hierarchy-level-for")]
110    pub hierarchy_level_for: Option<String>,
111    #[serde(rename = "@hierarchy-parent-node-for")]
112    pub hierarchy_parent_node_for: Option<String>,
113    #[serde(rename = "@hierarchy-parent-navigation-for")]
114    pub hierarchy_parent_navigation_for: Option<String>,
115    #[serde(rename = "@hierarchy-drill-state-for")]
116    pub hierarchy_drill_state_for: Option<String>,
117    #[serde(rename = "@hierarchy-node-descendant-count-for")]
118    pub hierarchy_node_descendant_count_for: Option<String>,
119    #[serde(rename = "@hierarchy-preorder-rank-for")]
120    pub hierarchy_preorder_rank_for: Option<String>,
121    #[serde(rename = "@hierarchy-sibling-rank-for")]
122    pub hierarchy_sibling_rank_for: Option<String>,
123    #[serde(rename = "@parameter")]
124    pub parameter: Option<SAPParameterProperty>,
125    #[serde(
126        rename = "@is-annotation",
127        deserialize_with = "de_str_to_bool",
128        default = "default_false"
129    )]
130    pub is_annotation: bool,
131    #[serde(rename = "@updatable-path")]
132    pub updatable_path: Option<String>,
133    #[serde(rename = "@preserve-flag-for")]
134    pub preserve_flag_for: Option<String>,
135    #[serde(
136        rename = "@variable-scale",
137        deserialize_with = "de_str_to_bool",
138        default = "default_false"
139    )]
140    pub has_variable_scale: bool,
141}