macro_rules! make_type_apply {
(
$apply_alias_name:ident,
$kind_trait_name:ident,
$lifetimes:tt,
$types:tt,
$kind_signature:literal
) => { ... };
(
@impl $apply_alias_name:ident,
$kind_trait_name:ident,
(),
(),
$kind_signature:literal
) => { ... };
(
@impl $apply_alias_name:ident,
$kind_trait_name:ident,
($($lifetimes:lifetime),+),
(),
$kind_signature:literal
) => { ... };
(
@impl $apply_alias_name:ident,
$kind_trait_name:ident,
(),
($($types:ident),+),
$kind_signature:literal
) => { ... };
(
@impl $apply_alias_name:ident,
$kind_trait_name:ident,
($($lifetimes:lifetime),+),
($($types:ident),+),
$kind_signature:literal
) => { ... };
}Expand description
Generates an Apply type alias of a specific arity.
This macro creates type aliases that simplify the usage of kind traits by providing a more convenient syntax for type applications. These aliases are used throughout the library to make type signatures more readable.
ยงParameters
apply_alias_name: Type alias name (e.g.,Apply0L1T).kind_trait_name: Trait name (e.g.,Kind0L1T).lifetimes: Tuple of lifetime parameters (e.g.,('a, 'b)).types: Tuple of type parameters (e.g.,(A, B)).kind_signature: Kind signature (e.g.,"* -> *").