operation_serde.rs 810 B

1234567891011121314151617181920212223242526272829
  1. use crate::core::{NodeBodyChangeset, Path};
  2. use serde::ser::SerializeMap;
  3. use serde::Serializer;
  4. pub fn serialize_edit_body<S>(path: &Path, changeset: &NodeBodyChangeset, serializer: S) -> Result<S::Ok, S::Error>
  5. where
  6. S: Serializer,
  7. {
  8. let mut map = serializer.serialize_map(Some(3))?;
  9. map.serialize_key("path")?;
  10. map.serialize_value(path)?;
  11. match changeset {
  12. NodeBodyChangeset::Delta { delta, inverted } => {
  13. map.serialize_key("delta")?;
  14. map.serialize_value(delta)?;
  15. map.serialize_key("inverted")?;
  16. map.serialize_value(inverted)?;
  17. map.end()
  18. }
  19. }
  20. }
  21. // pub fn deserialize_edit_body<'de, D>(deserializer: D) -> Result<NodeBodyChangeset, D::Error>
  22. // where
  23. // D: Deserializer<'de>,
  24. // {
  25. // todo!()
  26. // }