CmpValuesMetadata empty serialization

This commit is contained in:
Andrea Fioraldi 2021-10-14 17:04:03 +02:00
parent 279fb3f213
commit a782e8faaa

View File

@ -5,7 +5,7 @@ use alloc::{
vec::Vec, vec::Vec,
}; };
use serde::{de::DeserializeOwned, Deserialize, Serialize}; use serde::{de::DeserializeOwned, Deserialize, Serialize, Serializer};
use crate::{ use crate::{
bolts::{ownedref::OwnedRefMut, tuples::Named, AsSlice}, bolts::{ownedref::OwnedRefMut, tuples::Named, AsSlice},
@ -45,13 +45,24 @@ impl CmpValues {
} }
/// A state metadata holding a list of values logged from comparisons /// A state metadata holding a list of values logged from comparisons
#[derive(Default, Serialize, Deserialize)] #[derive(Default, Deserialize)]
pub struct CmpValuesMetadata { pub struct CmpValuesMetadata {
/// A `list` of values. /// A `list` of values.
#[serde(skip)] #[serde(skip)]
pub list: Vec<CmpValues>, pub list: Vec<CmpValues>,
} }
/// Implement an empty serializer as we do not need to keep this metadata in State after a restore
impl Serialize for CmpValuesMetadata {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let list: Vec<CmpValues> = vec![];
list.serialize(serializer)
}
}
crate::impl_serdeany!(CmpValuesMetadata); crate::impl_serdeany!(CmpValuesMetadata);
impl AsSlice<CmpValues> for CmpValuesMetadata { impl AsSlice<CmpValues> for CmpValuesMetadata {