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>