opcua_types/service_types/
enum_description.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    node_id::NodeId,
15    qualified_name::QualifiedName,
16    service_types::EnumDefinition,
17};
18
19#[derive(Debug, Clone, PartialEq)]
20pub struct EnumDescription {
21    pub data_type_id: NodeId,
22    pub name: QualifiedName,
23    pub enum_definition: EnumDefinition,
24    pub built_in_type: u8,
25}
26
27impl BinaryEncoder<EnumDescription> for EnumDescription {
28    fn byte_len(&self) -> usize {
29        let mut size = 0;
30        size += self.data_type_id.byte_len();
31        size += self.name.byte_len();
32        size += self.enum_definition.byte_len();
33        size += self.built_in_type.byte_len();
34        size
35    }
36
37    #[allow(unused_variables)]
38    fn encode<S: Write>(&self, stream: &mut S) -> EncodingResult<usize> {
39        let mut size = 0;
40        size += self.data_type_id.encode(stream)?;
41        size += self.name.encode(stream)?;
42        size += self.enum_definition.encode(stream)?;
43        size += self.built_in_type.encode(stream)?;
44        Ok(size)
45    }
46
47    #[allow(unused_variables)]
48    fn decode<S: Read>(stream: &mut S, decoding_options: &DecodingOptions) -> EncodingResult<Self> {
49        let data_type_id = NodeId::decode(stream, decoding_options)?;
50        let name = QualifiedName::decode(stream, decoding_options)?;
51        let enum_definition = EnumDefinition::decode(stream, decoding_options)?;
52        let built_in_type = u8::decode(stream, decoding_options)?;
53        Ok(EnumDescription {
54            data_type_id,
55            name,
56            enum_definition,
57            built_in_type,
58        })
59    }
60}