diff --git a/meilidb-schema/src/lib.rs b/meilidb-schema/src/lib.rs index 6e974594b..7e6fcf4b5 100644 --- a/meilidb-schema/src/lib.rs +++ b/meilidb-schema/src/lib.rs @@ -190,6 +190,23 @@ impl Schema { } } +impl Serialize for Schema { + fn serialize(&self, serializer: S) -> Result + where S: serde::ser::Serializer, + { + self.to_builder().serialize(serializer) + } +} + +impl<'de> Deserialize<'de> for Schema { + fn deserialize(deserializer: D) -> Result + where D: serde::de::Deserializer<'de>, + { + let builder = SchemaBuilder::deserialize(deserializer)?; + Ok(builder.build()) + } +} + #[derive(Serialize, Deserialize)] #[derive(Debug, Copy, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)] pub struct SchemaAttr(pub u16);