qemu/rust/qemu-api
Paolo Bonzini c92c447ff0 rust: make properties array immutable
Now that device_class_set_props() takes a const pointer, the only part of
"define_property!" that needs to be non-const is the call to try_into().
This in turn will only break if offset_of returns a value with the most
significant bit set (i.e. a struct size that is >=2^31 or >= 2^63,
respectively on 32- and 64-bit system), which is impossible.

Just use a cast and clean everything up to remove the run-time
initialization.  This also removes a use of OnceLock, which was only
stabilized in 1.70.0.

Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-11-05 14:18:16 +01:00
..
src rust: make properties array immutable 2024-11-05 14:18:16 +01:00
tests rust: build integration test for the qemu_api crate 2024-11-05 14:18:15 +01:00
.gitignore rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
build.rs rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
Cargo.lock rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
Cargo.toml rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00
meson.build rust: build integration test for the qemu_api crate 2024-11-05 14:18:15 +01:00
README.md rust: add crate to expose bindings and interfaces 2024-10-11 12:32:17 +02:00

QEMU bindings and API wrappers

This library exports helper Rust types, Rust macros and C FFI bindings for internal QEMU APIs.

The C bindings can be generated with bindgen, using this build target:

$ ninja bindings.rs

Generate Rust documentation

To generate docs for this crate, including private items:

cargo doc --no-deps --document-private-items