From 437c153500bef636a58c316ba019d436c973ea4c Mon Sep 17 00:00:00 2001 From: Chip Senkbeil Date: Sun, 11 Jun 2023 17:28:54 -0500 Subject: [PATCH] Add header serialization/deserialization methods --- distant-net/src/common/packet/header.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/distant-net/src/common/packet/header.rs b/distant-net/src/common/packet/header.rs index b6cb715..93425f4 100644 --- a/distant-net/src/common/packet/header.rs +++ b/distant-net/src/common/packet/header.rs @@ -1,7 +1,8 @@ -use crate::common::Value; +use crate::common::{utils, Value}; use derive_more::IntoIterator; use serde::{Deserialize, Serialize}; use std::collections::HashMap; +use std::io; use std::ops::{Deref, DerefMut}; /// Generates a new [`Header`] of key/value pairs based on literals. @@ -52,6 +53,16 @@ impl Header { pub fn insert(&mut self, key: impl Into, value: impl Into) -> Option { self.0.insert(key.into(), value.into()) } + + /// Serializes the header into bytes. + pub fn to_vec(&self) -> io::Result> { + utils::serialize_to_vec(self) + } + + /// Deserializes the header from bytes. + pub fn from_slice(slice: &[u8]) -> io::Result { + utils::deserialize_from_slice(slice) + } } impl Deref for Header {