rof_rs/rof_compat/inbuilt_type_extensions/
array_ext.rs

1use crate::{
2    object_format::{data_value::array::DataValueArray, property::Property},
3    rof_compat::RofCompat,
4};
5
6impl<T: RofCompat> RofCompat for Vec<T> {
7    fn serialize(&self) -> Box<dyn crate::object_format::DataValue> {
8        Box::new(DataValueArray::new(
9            T::default().serialize().get_type(),
10            self.iter()
11                .map(|item| Property::unnamed(item.serialize()))
12                .collect(),
13        ))
14    }
15
16    fn deserialize(rof_object: Box<dyn crate::object_format::DataValue>) -> Self {
17        rof_object
18            .as_vec()
19            .into_iter()
20            .map(|item| T::deserialize(item))
21            .collect()
22    }
23}