parse_sap_odata/sap_annotations/property/
mod.rs1#[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#[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}