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) }, } }