opcua_types/service_types/
data_set_writer_data_type.rs

1// OPCUA for Rust
2// SPDX-License-Identifier: MPL-2.0
3// Copyright (C) 2017-2022 Adam Lock
4//
5// This file was autogenerated from Opc.Ua.Types.bsd by tools/schema/gen_types.js
6//
7// DO NOT EDIT THIS FILE
8#![allow(unused_attributes)]
9use std::io::{Read, Write};
10#[allow(unused_imports)]
11use crate::{
12    encoding::*,
13    basic_types::*,
14    service_types::impls::MessageInfo,
15    node_ids::ObjectId,
16    string::UAString,
17    service_types::enums::DataSetFieldContentMask,
18    extension_object::ExtensionObject,
19    service_types::KeyValuePair,
20};
21
22#[derive(Debug, Clone, PartialEq)]
23pub struct DataSetWriterDataType {
24    pub name: UAString,
25    pub enabled: bool,
26    pub data_set_writer_id: u16,
27    pub data_set_field_content_mask: DataSetFieldContentMask,
28    pub key_frame_count: u32,
29    pub data_set_name: UAString,
30    pub data_set_writer_properties: Option<Vec<KeyValuePair>>,
31    pub transport_settings: ExtensionObject,
32    pub message_settings: ExtensionObject,
33}
34
35impl MessageInfo for DataSetWriterDataType {
36    fn object_id(&self) -> ObjectId {
37        ObjectId::DataSetWriterDataType_Encoding_DefaultBinary
38    }
39}
40
41impl BinaryEncoder<DataSetWriterDataType> for DataSetWriterDataType {
42    fn byte_len(&self) -> usize {
43        let mut size = 0;
44        size += self.name.byte_len();
45        size += self.enabled.byte_len();
46        size += self.data_set_writer_id.byte_len();
47        size += self.data_set_field_content_mask.byte_len();
48        size += self.key_frame_count.byte_len();
49        size += self.data_set_name.byte_len();
50        size += byte_len_array(&self.data_set_writer_properties);
51        size += self.transport_settings.byte_len();
52        size += self.message_settings.byte_len();
53        size
54    }
55
56    #[allow(unused_variables)]
57    fn encode<S: Write>(&self, stream: &mut S) -> EncodingResult<usize> {
58        let mut size = 0;
59        size += self.name.encode(stream)?;
60        size += self.enabled.encode(stream)?;
61        size += self.data_set_writer_id.encode(stream)?;
62        size += self.data_set_field_content_mask.encode(stream)?;
63        size += self.key_frame_count.encode(stream)?;
64        size += self.data_set_name.encode(stream)?;
65        size += write_array(stream, &self.data_set_writer_properties)?;
66        size += self.transport_settings.encode(stream)?;
67        size += self.message_settings.encode(stream)?;
68        Ok(size)
69    }
70
71    #[allow(unused_variables)]
72    fn decode<S: Read>(stream: &mut S, decoding_options: &DecodingOptions) -> EncodingResult<Self> {
73        let name = UAString::decode(stream, decoding_options)?;
74        let enabled = bool::decode(stream, decoding_options)?;
75        let data_set_writer_id = u16::decode(stream, decoding_options)?;
76        let data_set_field_content_mask = DataSetFieldContentMask::decode(stream, decoding_options)?;
77        let key_frame_count = u32::decode(stream, decoding_options)?;
78        let data_set_name = UAString::decode(stream, decoding_options)?;
79        let data_set_writer_properties: Option<Vec<KeyValuePair>> = read_array(stream, decoding_options)?;
80        let transport_settings = ExtensionObject::decode(stream, decoding_options)?;
81        let message_settings = ExtensionObject::decode(stream, decoding_options)?;
82        Ok(DataSetWriterDataType {
83            name,
84            enabled,
85            data_set_writer_id,
86            data_set_field_content_mask,
87            key_frame_count,
88            data_set_name,
89            data_set_writer_properties,
90            transport_settings,
91            message_settings,
92        })
93    }
94}