chiark / gitweb /
use serde derive
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 00:37:26 +0000 (01:37 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 00:37:26 +0000 (01:37 +0100)
src/gamestate.rs
templates/script.js

index 65e7e4a70503cb61a4bc81c4064f15c71bce7b84..b8d53951af5862e55d2d01a56c2297cc64318ec7 100644 (file)
@@ -5,6 +5,8 @@ slotmap::new_key_type!{
   pub struct PieceId;
 }
 
+#[derive(Copy,Clone,Serialize)]
+#[serde(into="String")]
 pub struct VisiblePieceId (pub u64);
 
 #[derive(Debug)]
@@ -25,6 +27,9 @@ impl Debug for VisiblePieceId {
     <Self as Display>::fmt(self, f)
   }
 }
+impl From<VisiblePieceId> for String {
+  fn from(p: VisiblePieceId) -> String { format!("{}",p) }
+}
 
 struct VisiblePieceIdVisitor { }
 impl<'de> serde::de::Visitor<'de> for VisiblePieceIdVisitor {
@@ -50,14 +55,6 @@ impl<'de> Deserialize<'de> for VisiblePieceId {
   }
 }
 
-impl Serialize for VisiblePieceId {
-  fn serialize<S>(&self, s : S) -> Result<S::Ok, S::Error>
-  where S : Serializer
-  {
-    s.serialize_str(&format!("{}", self))
-  }
-}
-
 impl PieceRenderInstructions {
   pub fn id_piece(&self) -> String { format!("piece{}", self.id) }
   pub fn id_select(&self) -> String { format!("select{}", self.id) }
index d0837436dd393e5d5a835ffad2ae7a9414319a70..42e45568770f367f957d790ce3e0903968ad490a 100644 (file)
@@ -63,7 +63,7 @@ function api_posted() {
 
 // dataset
 //   delt.p       piece id (static)
-//   delt.g       grabbed user (>=0 integer, or "")
+//   delt.g       grabbed user (player id string, or "")
 
 const DRAGGING = { // bitmask
   NO           : 0,