On Fri, Feb 21, 2025 at 06:03:30PM +0100, Paolo Bonzini wrote:
> Date: Fri, 21 Feb 2025 18:03:30 +0100
> From: Paolo Bonzini <pbonz...@redhat.com>
> Subject: [PATCH 03/15] rust: qom: add ObjectImpl::CLASS_INIT
> X-Mailer: git-send-email 2.48.1
> 
> As shown in the PL011 device, the orphan rules required a manual
> implementation of ClassInitImpl for anything not in the qemu_api crate;
> this gets in the way of moving system emulation-specific code (including
> DeviceClass, which as a blanket ClassInitImpl<DeviceClass> implementation)
> into its own crate.
> 
> Make ClassInitImpl optional, at the cost of having to specify the CLASS_INIT
> member by hand in every implementation of ObjectImpl.  The next commits will
> get rid of it, replacing all the "impl<T> ClassInitImpl<Class> for T" blocks
> with a generic class_init<T> method on Class.
> 
> Right now the definition is always the same, but do not provide a default
> as that will not be true once ClassInitImpl goes away.
> 
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
> ---
>  rust/hw/char/pl011/src/device.rs |  3 +++
>  rust/hw/timer/hpet/src/hpet.rs   |  3 ++-
>  rust/qemu-api/src/qom.rs         | 14 +++++++++++---
>  rust/qemu-api/tests/tests.rs     |  3 +++
>  4 files changed, 19 insertions(+), 4 deletions(-)> 

Reviewed-by: Zhao Liu <zhao1....@intel.com>


Reply via email to