From: Ian Jackson Date: Mon, 13 Jul 2020 23:39:49 +0000 (+0100) Subject: wip serde for gamestate X-Git-Tag: otter-0.2.0~1323 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=12c3a611ab21be9804647e89d046f09324f42ff8;p=otter.git wip serde for gamestate --- diff --git a/src/gamestate.rs b/src/gamestate.rs index 0d9ed257..5350e5bf 100644 --- a/src/gamestate.rs +++ b/src/gamestate.rs @@ -143,20 +143,18 @@ impl Display for ZCoord { // ---------- game state - rendering etc. ---------- impl Serialize for LogEntryRef { - fn serialize(&self, s: S) -> Result<::Ok, ::Error> where S: Serializer { - self.0.serialize(s) + #[throws(S::Error)] + fn serialize(&self, s: S) -> S::Ok { + self.0.serialize(s)? } } impl<'d> Deserialize<'d> for LogEntryRef { - fn deserialize(d: D) -> Result where D: Deserializer<'d> { - todo!() + #[throws(D::Error)] + fn deserialize>(d: D) -> LogEntryRef { + let l : LogEntry = >::deserialize(d)?; + LogEntryRef(Arc::new(l)) } - /* - fn deserialize(o:D) Result` - fn deserialize(&self, s: S) -> Result<::Ok, ::Error> where S: Serializer { - self.0.serialize(s) - }*/ } impl PieceState { diff --git a/src/imports.rs b/src/imports.rs index d9117df9..717464c5 100644 --- a/src/imports.rs +++ b/src/imports.rs @@ -23,8 +23,7 @@ pub use thiserror::Error; pub use anyhow::{Context,anyhow}; pub use fehler::{throws,throw}; -pub use serde::Deserialize; -pub use serde::Serialize; +pub use serde::{Serialize,Deserialize}; pub use serde::{Serializer,Deserializer}; pub use rocket_contrib::helmet::*;