opcua_types/service_types/
reference_type_attributes.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    localized_text::LocalizedText,
15};
16
17#[derive(Debug, Clone, PartialEq)]
18pub struct ReferenceTypeAttributes {
19    pub specified_attributes: u32,
20    pub display_name: LocalizedText,
21    pub description: LocalizedText,
22    pub write_mask: u32,
23    pub user_write_mask: u32,
24    pub is_abstract: bool,
25    pub symmetric: bool,
26    pub inverse_name: LocalizedText,
27}
28
29impl BinaryEncoder<ReferenceTypeAttributes> for ReferenceTypeAttributes {
30    fn byte_len(&self) -> usize {
31        let mut size = 0;
32        size += self.specified_attributes.byte_len();
33        size += self.display_name.byte_len();
34        size += self.description.byte_len();
35        size += self.write_mask.byte_len();
36        size += self.user_write_mask.byte_len();
37        size += self.is_abstract.byte_len();
38        size += self.symmetric.byte_len();
39        size += self.inverse_name.byte_len();
40        size
41    }
42
43    #[allow(unused_variables)]
44    fn encode<S: Write>(&self, stream: &mut S) -> EncodingResult<usize> {
45        let mut size = 0;
46        size += self.specified_attributes.encode(stream)?;
47        size += self.display_name.encode(stream)?;
48        size += self.description.encode(stream)?;
49        size += self.write_mask.encode(stream)?;
50        size += self.user_write_mask.encode(stream)?;
51        size += self.is_abstract.encode(stream)?;
52        size += self.symmetric.encode(stream)?;
53        size += self.inverse_name.encode(stream)?;
54        Ok(size)
55    }
56
57    #[allow(unused_variables)]
58    fn decode<S: Read>(stream: &mut S, decoding_options: &DecodingOptions) -> EncodingResult<Self> {
59        let specified_attributes = u32::decode(stream, decoding_options)?;
60        let display_name = LocalizedText::decode(stream, decoding_options)?;
61        let description = LocalizedText::decode(stream, decoding_options)?;
62        let write_mask = u32::decode(stream, decoding_options)?;
63        let user_write_mask = u32::decode(stream, decoding_options)?;
64        let is_abstract = bool::decode(stream, decoding_options)?;
65        let symmetric = bool::decode(stream, decoding_options)?;
66        let inverse_name = LocalizedText::decode(stream, decoding_options)?;
67        Ok(ReferenceTypeAttributes {
68            specified_attributes,
69            display_name,
70            description,
71            write_mask,
72            user_write_mask,
73            is_abstract,
74            symmetric,
75            inverse_name,
76        })
77    }
78}