steamkit/types/
message_object.rs1use std::io::{Read, Write};
4
5use crate::error::SteamError;
6use crate::types::key_value::KeyValue;
7
8#[derive(Clone, Debug, PartialEq, Eq)]
10pub struct MessageObject {
11 key_values: KeyValue,
12}
13
14impl Default for MessageObject {
15 fn default() -> MessageObject {
16 MessageObject::new()
17 }
18}
19
20impl MessageObject {
21 pub fn new() -> MessageObject {
23 MessageObject {
24 key_values: KeyValue::with_name("MessageObject"),
25 }
26 }
27
28 pub fn with_key_values(key_values: KeyValue) -> MessageObject {
30 MessageObject { key_values }
31 }
32
33 pub fn key_values(&self) -> &KeyValue {
35 &self.key_values
36 }
37
38 pub fn key_values_mut(&mut self) -> &mut KeyValue {
40 &mut self.key_values
41 }
42
43 pub fn read_from_stream(&mut self, stream: &mut dyn Read) -> bool {
45 self.key_values.try_read_as_binary(stream)
46 }
47
48 pub fn write_to_stream(&self, stream: &mut dyn Write) -> Result<(), SteamError> {
50 self.key_values.save_to_stream(stream, true)
51 }
52}