use serde::Serialize;
use num_traits::ToBytes;
use crate::types::HeaderField;
#[derive(Debug, Default, Serialize)]
pub struct HeaderFieldEx<T> {
value: HeaderField<T>,
raw: Vec<u8>,
}
impl From<HeaderField<u8>> for HeaderFieldEx<u8> {
fn from(value: HeaderField<u8>) -> Self {
let raw = value.value.to_le_bytes().to_vec();
Self { value, raw }
}
}
impl From<HeaderField<u16>> for HeaderFieldEx<u16> {
fn from(value: HeaderField<u16>) -> Self {
let raw = value.value.to_le_bytes().to_vec();
Self { value, raw }
}
}
impl From<HeaderField<u32>> for HeaderFieldEx<u32> {
fn from(value: HeaderField<u32>) -> Self {
let raw = ToBytes::to_le_bytes(&value.value).as_ref().to_vec();
Self { value, raw }
}
}