macro_rules! multiple_desc_type {
    (enum $s:ident { $($v:ident($t:ty),)* } ) => { ... };
}
Expand description

Build a frame memory descriptor enum that supports multiple descriptor types.

This is useful for the case where the frames’ memory backing is not decided at compile-time. In this case, this macro can be used to list all the potential types supported at run-time, and the selected one can be built as the program is run.

Example

use cros_codecs::multiple_desc_type;
use cros_codecs::utils::DmabufFrame;

/// Frames' memory can be provided either by the backend, or via PRIME DMABUF handles.
multiple_desc_type! {
    enum OwnedOrDmaDescriptor {
        Owned(()),
        Dmabuf(DmabufFrame),
    }
}