Serialize CmpValuesMetadata to an empty object to save space on State serialize

This commit is contained in:
Andrea Fioraldi 2021-07-09 14:35:31 +02:00
parent fe57c5ecd6
commit 4af9af784f

View File

@ -5,7 +5,7 @@ use alloc::{
vec::Vec,
};
use serde::{de::DeserializeOwned, Deserialize, Serialize};
use serde::{de::DeserializeOwned, Deserialize, Serialize, Serializer};
use crate::{
bolts::{ownedref::OwnedRefMut, tuples::Named, AsSlice},
@ -45,7 +45,7 @@ impl CmpValues {
}
/// A state metadata holding a list of values logged from comparisons
#[derive(Default, Serialize, Deserialize)]
#[derive(Default, Deserialize)]
pub struct CmpValuesMetadata {
/// A `list` of values.
pub list: Vec<CmpValues>,
@ -53,6 +53,17 @@ pub struct CmpValuesMetadata {
crate::impl_serdeany!(CmpValuesMetadata);
impl Serialize for CmpValuesMetadata {
/// Serialzie to an empty object, we don't need to keep it in State after reset
fn serialize<S>(&self, se: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let empty = CmpValuesMetadata::new();
empty.serialize(se)
}
}
impl AsSlice<CmpValues> for CmpValuesMetadata {
/// Convert to a slice
#[must_use]