rof_rs/rof_compat/inbuilt_type_extensions/
array_ext.rs1use 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}