opcua_types/service_types/
open_secure_channel_response.rs1#![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 response_header::ResponseHeader,
17 byte_string::ByteString,
18 service_types::ChannelSecurityToken,
19};
20
21#[derive(Debug, Clone, PartialEq)]
22pub struct OpenSecureChannelResponse {
23 pub response_header: ResponseHeader,
24 pub server_protocol_version: u32,
25 pub security_token: ChannelSecurityToken,
26 pub server_nonce: ByteString,
27}
28
29impl MessageInfo for OpenSecureChannelResponse {
30 fn object_id(&self) -> ObjectId {
31 ObjectId::OpenSecureChannelResponse_Encoding_DefaultBinary
32 }
33}
34
35impl BinaryEncoder<OpenSecureChannelResponse> for OpenSecureChannelResponse {
36 fn byte_len(&self) -> usize {
37 let mut size = 0;
38 size += self.response_header.byte_len();
39 size += self.server_protocol_version.byte_len();
40 size += self.security_token.byte_len();
41 size += self.server_nonce.byte_len();
42 size
43 }
44
45 #[allow(unused_variables)]
46 fn encode<S: Write>(&self, stream: &mut S) -> EncodingResult<usize> {
47 let mut size = 0;
48 size += self.response_header.encode(stream)?;
49 size += self.server_protocol_version.encode(stream)?;
50 size += self.security_token.encode(stream)?;
51 size += self.server_nonce.encode(stream)?;
52 Ok(size)
53 }
54
55 #[allow(unused_variables)]
56 fn decode<S: Read>(stream: &mut S, decoding_options: &DecodingOptions) -> EncodingResult<Self> {
57 let response_header = ResponseHeader::decode(stream, decoding_options)?;
58 let server_protocol_version = u32::decode(stream, decoding_options)?;
59 let security_token = ChannelSecurityToken::decode(stream, decoding_options)?;
60 let server_nonce = ByteString::decode(stream, decoding_options)?;
61 Ok(OpenSecureChannelResponse {
62 response_header,
63 server_protocol_version,
64 security_token,
65 server_nonce,
66 })
67 }
68}