macro_rules! rendy_backend {
(match ($target:expr) : $enum_type:path {
$(Dx12 => $dx12_code:block)?
$(Empty => $empty_code:block)?
$(Gl => $gl_code:block)?
$(Metal => $metal_code:block)?
$(Vulkan => $vulkan_code:block)?
$($(use $back:ident;)?_ => $code:block)?
}) => { ... };
(match ($target:expr) : $enum_type:path {
$(Dx12($dx12_pat:pat) => $dx12_code:block)?
$(Empty($empty_pat:pat) => $empty_code:block)?
$(Gl($gl_pat:pat) => $gl_code:block)?
$(Metal($metal_pat:pat) => $metal_code:block)?
$(Vulkan($vulkan_pat:pat) => $vulkan_code:block$)?
$($(use $back:ident;)?_($pat:pat) => $code:block)?
}) => { ... };
}
Execute arm with matching backend.
If particular backend is disabled
then its arm is stripped from compilation altogether.