1 个不稳定版本
0.1.0 | 2021年9月23日 |
---|
#77 在 #别名
每月185次下载
用于 2 个包(通过 gmod)
6KB
73 行
✨ fn_type_alias
一个进程属性宏,用于为属性函数生成具有给定标识符的类型别名。
示例
#[macro_use]
extern crate fn_type_alias;
#[type_alias(HelloWorldFn)] // The type alias will inherit its visibility from the function
pub(super) fn hello_world() {
println!("hello world!");
}
#[type_alias(pub(crate), HelloWorldFn)] // The type alias will be pub(crate), but the function will be pub
pub fn hello_world() {
println!("hello world!");
}
用例
此宏非常适合条件编译。例如,使用 fn_abi
宏
#[macro_use]
extern crate fn_type_alias;
#[macro_use]
extern crate fn_abi;
#[abi(
linux32 = "C",
linux64 = "C",
win32 = "thiscall",
win64 = "stdcall"
)]
#[type_alias(HelloWorldFn)]
pub extern fn hello_world() {
println!("hello world!");
}
// Expands to when building for Windows 64-bit:
pub type HelloWorldFn = extern "stdcall" fn();
pub extern "stdcall" fn hello_world() {
println!("hello world!");
}
依赖项
~1.5MB
~35K SLoC