chiark / gitweb /
Comment about alternatives we considered
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 13 Jan 2021 21:58:45 +0000 (21:58 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 13 Jan 2021 21:58:45 +0000 (21:58 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/accounts.rs

index 641a231c57285a9806dd2a628512d74277349d6d..568e3ca6dc117361b7323ee0a8a90f76a15a6184 100644 (file)
@@ -322,8 +322,13 @@ impl AccountsGuard {
 
     if let Some(new_access) = set_access {
       if (|| Ok::<_,IE>(
-        rmp_serde::encode::to_vec(&new_access)?
-          != rmp_serde::encode::to_vec(&entry.access)?
+        // In lieu of downcasting.
+        // Ideally we would add Eq and PartialEq as a trait bound
+        // on PlayerAccessSpec and then use std::any::Any::downcast_ref
+        // in a provided method.  Well, ideally this would not be
+        // necessary and we could do some magic.
+           rmp_serde::encode::to_vec(&new_access)?
+        != rmp_serde::encode::to_vec(&entry.access)?
       ))()? {
         process_all_players_for_account(
           games,