macro_rules! _pair {
(
$( #[ $Meta : meta ] )*
$Vis : vis pair $Name : ident :
<
$ParamName1 : ident $( : $ParamTy1x1 : ident $( :: $ParamTy1xN : ident )* $( + $ParamTy1x2 : path )* )?,
$ParamName2 : ident $( : $ParamTy2x1 : ident $( :: $ParamTy2xN : ident )* $( + $ParamTy2x2 : path )* )? $(,)?
>
$( ; $( $Rest : tt )* )?
) => { ... };
(
$( #[ $Meta : meta ] )*
$Vis : vis pair $Name : ident :
<
$ParamName1 : ident $( : $ParamTy1x1 : ident $( :: $ParamTy1xN : ident )* $( + $ParamTy1x3 : path )* )?,
$ParamName2 : ident $( : $ParamTy2x1 : ident $( :: $ParamTy2xN : ident )* $( + $ParamTy2x3 : path )* )?,
$ParamName3 : ident
$( $Rest : tt )*
) => { ... };
(
$( #[ $Meta : meta ] )*
$Vis : vis pair $Name : ident
:
$TypeSplit1x1 : ident $( :: $TypeSplit1xN : ident )*
$( < $( $( $ParamName1 : ident $( : $ParamTy1x1 : ident $( :: $ParamTy1xN : ident )* $( + $ParamTy1x2 : path )* )? ),+ )? > )?
,
$TypeSplit2x1 : ident $( :: $TypeSplit2xN : ident )*
$( < $( $ParamName2 : ident $( : $ParamTy2x1 : ident $( :: $ParamTy2xN : ident )* $( + $ParamTy2x2 : path )* )? ),* > )?
$(,)?
$( ; $( $Rest : tt )* )?
) => { ... };
(
$( #[ $Meta : meta ] )*
$Vis : vis pair $Name : ident :
<
$ParamName1 : ident $( : $ParamTy1x1 : ident $( :: $ParamTy1xN : ident )* $( + $ParamTy1x2 : path )* )? $(,)?
>
$( ; $( $Rest : tt )* )?
) => { ... };
(
$( #[ $Meta : meta ] )*
$Vis : vis pair $Name : ident
:
$TypeSplit1x1 : ident $( :: $TypeSplit1xN : ident )*
$( < $( $( $ParamName1 : ident $( : $ParamTy1x1 : ident $( :: $ParamTy1xN : ident )* $( + $ParamTy1x2 : path )* )? ),+ )? > )?
$(,)?
$( ; $( $Rest : tt )* )?
) => { ... };
}
Expand description
Pair type constructor.
Should not be used directly. Instead use macro crate::types!.