rust: qom: move ClassInitImpl to the instance side
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 28 Oct 2024 13:42:23 +0000 (14:42 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 10 Dec 2024 17:49:26 +0000 (18:49 +0100)
commitc6c4f3e0d90990c642523c087482eac3f42566c1
tree3e0b247f9cd6f5977a56d596626d048d38f9f461
parent3701fb22dfd438993e76e158beb97683359d1dd9
rust: qom: move ClassInitImpl to the instance side

Put all traits on the instance struct, which makes it possible to reuse
class structs if no new virtual methods or class fields are added.
This is almost always the case for devices (because they are leaf
classes), which is the primary use case for Rust.

This is also simpler: soon we will find the implemented methods without
macros, and this removes the need to go from the class struct to the
instance struct to find the implementation of the *Impl traits.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
rust/hw/char/pl011/src/device.rs
rust/qemu-api/src/definitions.rs
rust/qemu-api/tests/tests.rs