[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 03/12] rust: callbacks: allow passing optional callbacks as (
From: |
Zhao Liu |
Subject: |
Re: [PATCH 03/12] rust: callbacks: allow passing optional callbacks as () |
Date: |
Mon, 10 Feb 2025 22:31:52 +0800 |
On Fri, Feb 07, 2025 at 11:16:14AM +0100, Paolo Bonzini wrote:
> Date: Fri, 7 Feb 2025 11:16:14 +0100
> From: Paolo Bonzini <pbonzini@redhat.com>
> Subject: [PATCH 03/12] rust: callbacks: allow passing optional callbacks as
> ()
> X-Mailer: git-send-email 2.48.1
>
> In some cases, callbacks are optional. Using "Some(function)" and "None"
> does not work well, because when someone writes "None" the compiler does
> not know what to use for "F" in "Option<F>".
>
> Therefore, adopt () to mean a "null" callback. It is possible to enforce
> that a callback is valid by adding a "let _: () = F::ASSERT_IS_SOME" before
> the invocation of F::call.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> rust/qemu-api/src/callbacks.rs | 97 ++++++++++++++++++++++++++++++++++
> 1 file changed, 97 insertions(+)
>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
- [PATCH 00/12] rust: remaining parts of qdev bindings, Paolo Bonzini, 2025/02/07
- [PATCH 02/12] rust: qom: add object creation functionality, Paolo Bonzini, 2025/02/07
- [PATCH 04/12] rust: qdev: add clock creation, Paolo Bonzini, 2025/02/07
- [PATCH 01/12] rust: qom: add reference counting functionality, Paolo Bonzini, 2025/02/07
- [PATCH 03/12] rust: callbacks: allow passing optional callbacks as (), Paolo Bonzini, 2025/02/07
- Re: [PATCH 03/12] rust: callbacks: allow passing optional callbacks as (),
Zhao Liu <=
- [PATCH 07/12] rust: qdev: switch from legacy reset to Resettable, Paolo Bonzini, 2025/02/07
- [PATCH 05/12] rust: qom: allow initializing interface vtables, Paolo Bonzini, 2025/02/07
- [PATCH 06/12] rust: qdev: make ObjectImpl a supertrait of DeviceImpl, Paolo Bonzini, 2025/02/07
- [PATCH 10/12] rust: irq: define ObjectType for IRQState, Paolo Bonzini, 2025/02/07
- [PATCH 09/12] rust: bindings for MemoryRegionOps, Paolo Bonzini, 2025/02/07
- [PATCH 08/12] rust: bindings: add Send and Sync markers for types that have bindings, Paolo Bonzini, 2025/02/07
- [PATCH 11/12] rust: chardev, qdev: add bindings to qdev_prop_set_chr, Paolo Bonzini, 2025/02/07