1mod aggregate_filter;
4mod anonymous_identity_token;
5mod application_description;
6mod application_type;
7mod argument;
8mod attribute_id;
9mod attribute_operand;
10mod browse_description;
11mod browse_direction;
12mod browse_next_request;
13mod browse_next_response;
14mod browse_path;
15mod browse_path_result;
16mod browse_path_target;
17mod browse_request;
18mod browse_response;
19mod browse_result;
20mod build_info;
21mod byte_string;
22mod call_method_request;
23mod call_method_result;
24mod call_request;
25mod call_response;
26mod content_filter;
27mod content_filter_element;
28mod create_monitored_items_request;
29mod create_monitored_items_response;
30mod create_subscription_request;
31mod create_subscription_respones;
32mod data_change_filter;
33mod data_value;
34mod date_time;
35mod delete_monitored_items_request;
36mod delete_monitored_items_response;
37mod delete_subscriptions_request;
38mod delete_subscriptions_response;
39mod element_operand;
40mod endpoint_description;
41mod enum_definition;
42mod enum_field;
43mod enumeration;
44mod eu_information;
45mod event_filter;
46mod expanded_node_id;
47mod extension_object;
48mod filter_operator;
49mod guid;
50mod issued_identity_token;
51mod literal_operand;
52mod localized_text;
53mod message_security_mode;
54mod monitored_item_create_request;
55mod monitored_item_create_result;
56mod monitoring_mode;
57mod monitoring_parameters;
58mod node_attributes;
59mod node_class;
60mod node_id;
61mod node_id_type;
62mod qualified_name;
63mod range;
64mod read_request;
65mod read_response;
66mod read_value_id;
67mod reference_description;
68mod relative_path;
69mod relative_path_element;
70mod request_header;
71mod response_header;
72mod server_state;
73mod server_status_data_type;
74mod simple_attribute_operand;
75mod status_code;
76mod string;
77mod structure_definition;
78mod timestamps_to_return;
79mod user_name_identity_token;
80mod variant;
81mod write_request;
82mod write_response;
83mod write_value;
84mod x509_identity_token;
85
86pub use self::{
87 aggregate_filter::AggregateFilter,
88 anonymous_identity_token::AnonymousIdentityToken,
89 application_description::ApplicationDescription,
90 application_type::ApplicationType,
91 argument::Argument,
92 attribute_id::AttributeId,
93 attribute_operand::AttributeOperand,
94 browse_description::BrowseDescription,
95 browse_direction::BrowseDirection,
96 browse_next_request::BrowseNextRequest,
97 browse_next_response::BrowseNextResponse,
98 browse_path::BrowsePath,
99 browse_path_result::BrowsePathResult,
100 browse_path_target::BrowsePathTarget,
101 browse_request::BrowseRequest,
102 browse_response::BrowseResponse,
103 browse_result::BrowseResult,
104 build_info::BuildInfo,
105 byte_string::ByteString,
106 call_method_request::CallMethodRequest,
107 call_method_result::CallMethodResult,
108 call_request::CallRequest,
109 call_response::CallResponse,
110 content_filter::ContentFilter,
111 content_filter_element::ContentFilterElement,
112 create_monitored_items_request::CreateMonitoredItemsRequest,
113 create_monitored_items_response::CreateMonitoredItemsResponse,
114 create_subscription_request::CreateSubscriptionRequest,
115 create_subscription_respones::CreateSubscriptionResponse,
116 data_change_filter::DataChangeFilter,
117 data_value::DataValue,
118 date_time::DateTime,
119 delete_monitored_items_request::DeleteMonitoredItemsRequest,
120 delete_monitored_items_response::DeleteMonitoredItemsResponse,
121 delete_subscriptions_request::DeleteSubscriptionsRequest,
122 delete_subscriptions_response::DeleteSubscriptionsResponse,
123 element_operand::ElementOperand,
124 endpoint_description::EndpointDescription,
125 enum_definition::EnumDefinition,
126 enum_field::EnumField,
127 enumeration::Enumeration,
128 eu_information::EUInformation,
129 event_filter::EventFilter,
130 expanded_node_id::ExpandedNodeId,
131 extension_object::ExtensionObject,
132 filter_operator::FilterOperator,
133 guid::Guid,
134 issued_identity_token::IssuedIdentityToken,
135 literal_operand::LiteralOperand,
136 localized_text::LocalizedText,
137 message_security_mode::MessageSecurityMode,
138 monitored_item_create_request::MonitoredItemCreateRequest,
139 monitored_item_create_result::MonitoredItemCreateResult,
140 monitoring_mode::MonitoringMode,
141 monitoring_parameters::MonitoringParameters,
142 node_attributes::{
143 DataTypeAttributes, MethodAttributes, NodeAttributes, ObjectAttributes,
144 ObjectTypeAttributes, ReferenceTypeAttributes, VariableAttributes, VariableTypeAttributes,
145 ViewAttributes,
146 },
147 node_class::NodeClass,
148 node_id::NodeId,
149 node_id_type::NodeIdType,
150 qualified_name::QualifiedName,
151 range::Range,
152 read_request::ReadRequest,
153 read_response::ReadResponse,
154 read_value_id::ReadValueId,
155 reference_description::ReferenceDescription,
156 relative_path::RelativePath,
157 relative_path_element::RelativePathElement,
158 request_header::RequestHeader,
159 response_header::ResponseHeader,
160 server_state::ServerState,
161 server_status_data_type::ServerStatusDataType,
162 simple_attribute_operand::SimpleAttributeOperand,
163 status_code::StatusCode,
164 string::String,
165 structure_definition::StructureDefinition,
166 timestamps_to_return::TimestampsToReturn,
167 user_name_identity_token::UserNameIdentityToken,
168 variant::Variant,
169 write_request::WriteRequest,
170 write_response::WriteResponse,
171 write_value::WriteValue,
172 x509_identity_token::X509IdentityToken,
173};
174
175macro_rules! primitive {
176 ($( ($name:ident, $type:ty) ),* $(,)?) => {
177 $(
178 $crate::data_type!($name);
179
180 impl $name {
181 #[must_use]
182 pub const fn new(value: $type) -> Self {
183 $name(value)
184 }
185
186 #[must_use]
187 pub const fn value(&self) -> $type {
188 self.0
189 }
190 }
191
192 #[cfg(feature = "serde")]
193 impl serde::Serialize for $name {
194 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
195 where
196 S: serde::Serializer,
197 {
198 paste::paste! {
199 serializer.[<serialize_ $type>](self.0)
200 }
201 }
202 }
203 )*
204 };
205}
206
207primitive!(
208 (Boolean, bool), (SByte, i8), (Byte, u8), (Int16, i16), (UInt16, u16), (Int32, i32), (UInt32, u32), (Int64, i64), (UInt64, u64), (Float, f32), (Double, f64), );