Serialize Base62Ids as u64 when human-readability is not required

This commit is contained in:
Josiah Glosson
2025-01-24 13:42:31 -06:00
parent 4d24c17c06
commit b0883688bd
4 changed files with 31 additions and 11 deletions

View File

@@ -184,9 +184,10 @@ pub async fn ws_init(
.await;
}
}
ClientToServerMessage::SocketOpen
| ClientToServerMessage::SocketClose { .. }
| ClientToServerMessage::SocketSend { .. } => todo!(),
ClientToServerMessage::SocketOpen { .. } => todo!(),
ClientToServerMessage::SocketClose { .. } => todo!(),
ClientToServerMessage::SocketSend { .. } => todo!(),
}
}

View File

@@ -162,8 +162,9 @@ impl FriendsSocket {
let _ = emit_friend(FriendPayload::FriendRequest { from }).await;
}
ServerToClientMessage::FriendRequestRejected { .. } => todo!(),
ServerToClientMessage::SocketOpened { .. } => todo!(),
ServerToClientMessage::SocketClosed { .. } => todo!(),
ServerToClientMessage::SocketConnected { .. } => todo!(),
ServerToClientMessage::SocketDisconnected { .. } => todo!(),
ServerToClientMessage::FriendSocketOpened { .. } => todo!(),
ServerToClientMessage::SocketData { .. } => todo!(),
}

View File

@@ -136,6 +136,13 @@ pub mod base62_impl {
formatter.write_str("a base62 string id")
}
fn visit_u64<E>(self, v: u64) -> Result<Self::Value, E>
where
E: de::Error,
{
Ok(Base62Id(v))
}
fn visit_str<E>(self, string: &str) -> Result<Base62Id, E>
where
E: de::Error,
@@ -144,7 +151,11 @@ pub mod base62_impl {
}
}
deserializer.deserialize_str(Base62Visitor)
if deserializer.is_human_readable() {
deserializer.deserialize_str(Base62Visitor)
} else {
deserializer.deserialize_u64(Base62Visitor)
}
}
}
@@ -153,7 +164,11 @@ pub mod base62_impl {
where
S: Serializer,
{
serializer.serialize_str(&to_base62(self.0))
if serializer.is_human_readable() {
serializer.serialize_str(&to_base62(self.0))
} else {
serializer.serialize_u64(self.0)
}
}
}

View File

@@ -10,7 +10,9 @@ pub enum ClientToServerMessage {
profile_name: Option<String>,
},
SocketOpen,
SocketOpen {
socket: Uuid,
},
SocketClose {
socket: Uuid,
},
@@ -40,10 +42,11 @@ pub enum ServerToClientMessage {
from: UserId,
},
SocketOpened {
socket: Uuid,
SocketConnected {
to_socket: Uuid,
new_socket: Uuid,
},
SocketClosed {
SocketDisconnected {
socket: Uuid,
},
FriendSocketOpened {