Skip to main content

__impl_alt_family

Macro __impl_alt_family 

Source
#[doc(hidden)]
macro_rules! __impl_alt_family { ($ty:ty, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?) => { ... }; ($ty:ty, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, dataptr) => { ... }; ($ty:ty, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, serialize) => { ... }; ($ty:ty, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, subset) => { ... }; ($ty:ty, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, dataptr, serialize) => { ... }; ($ty:ty, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, subset, serialize) => { ... }; ({$($gen:tt)*} $ty:ty {$($whr:tt)*}, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?) => { ... }; ({$($gen:tt)*} $ty:ty {$($whr:tt)*}, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, dataptr) => { ... }; ({$($gen:tt)*} $ty:ty {$($whr:tt)*}, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, serialize) => { ... }; ({$($gen:tt)*} $ty:ty {$($whr:tt)*}, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, subset) => { ... }; ({$($gen:tt)*} $ty:ty {$($whr:tt)*}, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, dataptr, serialize) => { ... }; ({$($gen:tt)*} $ty:ty {$($whr:tt)*}, $methods:ident, $inferbase:ident, dataptr: $dpf:ident $(($dpe:ty))?, default: $dff:ident $(($dfe:ty))?, subset, serialize) => { ... }; }
Expand description

Internal macro: the per-family knob matrix.

Maps the user-facing knob list of the public impl_alt*_from_data! macros (dataptr / serialize / subset, canonical order) to a canonical __impl_alt_from_data! invocation. The family supplies:

  • dataptr: — the AltVec flavor for the dataptr knob,
  • default: — the AltVec flavor when no dataptr/subset knob is given (the materializing/data2 path).

Valid knob combinations (anything else is a compile error):

()                    // default flavor
(dataptr)             // direct-pointer flavor
(serialize)           // default flavor + serialize
(subset)              // extract_subset flavor
(dataptr, serialize)
(subset, serialize)