From 009163cdffc50f8845d5bfc2e39e5086e175ebef Mon Sep 17 00:00:00 2001 From: Hennadii Chernyshchyk Date: Sun, 16 Jun 2024 19:54:40 +0300 Subject: [PATCH] Set type annottations for transmute (#291) This is a new lint for Clippy that causes CI to fail. For details see https://rust-lang.github.io/rust-clippy/master/index.html#/missing_transmute_annotations --- src/client/events/event_data.rs | 4 ++-- src/core/replication_registry/command_fns.rs | 2 +- src/core/replication_registry/rule_fns.rs | 24 +++++++++++++------- src/server/events/event_data.rs | 4 ++-- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/client/events/event_data.rs b/src/client/events/event_data.rs index 59405180..89de7934 100644 --- a/src/client/events/event_data.rs +++ b/src/client/events/event_data.rs @@ -89,8 +89,8 @@ impl ClientEventData { receive: receive::, resend_locally: resend_locally::, reset: reset::, - serialize: unsafe { mem::transmute(serialize) }, - deserialize: unsafe { mem::transmute(deserialize) }, + serialize: unsafe { mem::transmute::, unsafe fn()>(serialize) }, + deserialize: unsafe { mem::transmute::, unsafe fn()>(deserialize) }, } } diff --git a/src/core/replication_registry/command_fns.rs b/src/core/replication_registry/command_fns.rs index 004bb5ea..dcc9da34 100644 --- a/src/core/replication_registry/command_fns.rs +++ b/src/core/replication_registry/command_fns.rs @@ -31,7 +31,7 @@ impl UntypedCommandFns { type_id: TypeId::of::(), type_name: any::type_name::(), // SAFETY: the function won't be called until the type is restored. - write: unsafe { mem::transmute(write) }, + write: unsafe { mem::transmute::, unsafe fn()>(write) }, remove, } } diff --git a/src/core/replication_registry/rule_fns.rs b/src/core/replication_registry/rule_fns.rs index 2329c5f7..ada29c17 100644 --- a/src/core/replication_registry/rule_fns.rs +++ b/src/core/replication_registry/rule_fns.rs @@ -39,10 +39,14 @@ impl UntypedRuleFns { ); RuleFns { - serialize: unsafe { mem::transmute(self.serialize) }, - deserialize: unsafe { mem::transmute(self.deserialize) }, - deserialize_in_place: unsafe { mem::transmute(self.deserialize_in_place) }, - consume: unsafe { mem::transmute(self.consume) }, + serialize: unsafe { mem::transmute::>(self.serialize) }, + deserialize: unsafe { + mem::transmute::>(self.deserialize) + }, + deserialize_in_place: unsafe { + mem::transmute::>(self.deserialize_in_place) + }, + consume: unsafe { mem::transmute::>(self.consume) }, } } } @@ -53,10 +57,14 @@ impl From> for UntypedRuleFns { Self { type_id: TypeId::of::(), type_name: any::type_name::(), - serialize: unsafe { mem::transmute(value.serialize) }, - deserialize: unsafe { mem::transmute(value.deserialize) }, - deserialize_in_place: unsafe { mem::transmute(value.deserialize_in_place) }, - consume: unsafe { mem::transmute(value.consume) }, + serialize: unsafe { mem::transmute::, unsafe fn()>(value.serialize) }, + deserialize: unsafe { + mem::transmute::, unsafe fn()>(value.deserialize) + }, + deserialize_in_place: unsafe { + mem::transmute::, unsafe fn()>(value.deserialize_in_place) + }, + consume: unsafe { mem::transmute::, unsafe fn()>(value.consume) }, } } } diff --git a/src/server/events/event_data.rs b/src/server/events/event_data.rs index d7072a7d..d6a9f92a 100644 --- a/src/server/events/event_data.rs +++ b/src/server/events/event_data.rs @@ -95,8 +95,8 @@ impl ServerEventData { receive: receive::, resend_locally: resend_locally::, reset: reset::, - serialize: unsafe { mem::transmute(serialize) }, - deserialize: unsafe { mem::transmute(deserialize) }, + serialize: unsafe { mem::transmute::, unsafe fn()>(serialize) }, + deserialize: unsafe { mem::transmute::, unsafe fn()>(deserialize) }, } }