Allowing attributes on more macros.

This commit is contained in:
Myrddin Dundragon 2019-06-25 03:38:12 -04:00
parent f0b6e71591
commit 0f48c759bb

View File

@ -4,30 +4,30 @@ macro_rules! c_library
{
$(statics:
{
$($sname: ident: $stype: ty);+;
$($(#[$satter: meta])* $sname: ident: $stype: ty);+;
}
)?
$(functions:
{
$($fname: ident($($farg: ident: $fargt: ty),*) -> $fret:ty);+;
$($(#[$fatter: meta])* $fname: ident($($farg: ident: $fargt: ty),*) -> $fret:ty);+;
}
)?
$(varargs:
{
$($vname: ident($($vargs: ident: $vargst: ty),+) -> $vret:ty);+;
$($(#[$vatter: meta])* $vname: ident($($vargs: ident: $vargst: ty),+) -> $vret:ty);+;
}
)?
} =>
{
extern "C"
{
$($(pub static $sname: $stype;)+)?
$($($(#[$satter])* pub static $sname: $stype;)+)?
$($(pub fn $fname($($farg: $fargt),*) -> $fret;)+)?
$($($(#[$fatter])* pub fn $fname($($farg: $fargt),*) -> $fret;)+)?
$($(pub fn $vname($(vargs: $vargst),+ , ...) -> $vret;)+)?
$($($(#[$vatter])* pub fn $vname($(vargs: $vargst),+ , ...) -> $vret;)+)?
}
};
}
@ -40,19 +40,19 @@ macro_rules! external_library
{
$(statics:
{
$($sname: ident: $stype: ty);+;
$($(#[$satter: meta])* $sname: ident: $stype: ty);+;
}
)?
$(functions:
{
$($fname: ident($($farg: ident: $fargt: ty),*) -> $fret:ty);+;
$($(#[$fatter: meta])* $fname: ident($($farg: ident: $fargt: ty),*) -> $fret:ty);+;
}
)?
$(varargs:
{
$($vname: ident($($vargs: ident: $vargst: ty),+) -> $vret:ty);+;
$($(#[$vatter: meta])* $vname: ident($($vargs: ident: $vargst: ty),+) -> $vret:ty);+;
}
)?
}
@ -61,11 +61,11 @@ macro_rules! external_library
#[link(name=$link)]
extern "C"
{
$($(pub static $sname: $stype;)+)?
$($($(#[$satter])* pub static $sname: $stype;)+)?
$($(pub fn $fname($($farg: $fargt),*) -> $fret;)+)?
$($($(#[$fatter])* pub fn $fname($($farg: $fargt),*) -> $fret;)+)?
$($(pub fn $vname($(vargs: $vargst),+ , ...) -> $vret;)+)?
$($($(#[$vatter])* pub fn $vname($(vargs: $vargst),+ , ...) -> $vret;)+)?
}
};
}