#abi #extern #macro #cross-compilation #calling-convention

macro fn_abi

A proc attribute macro that sets the ABI/calling convention for the attributed function

2 stable releases

3.0.0 Mar 7, 2022
2.0.1 Sep 27, 2021
0.1.2 Sep 26, 2021
0.1.1 Sep 24, 2021
0.1.0 Sep 23, 2021

#12 in #cross-compilation

Download history 4/week @ 2024-01-01 45/week @ 2024-01-08 8/week @ 2024-01-15 10/week @ 2024-01-22 261/week @ 2024-01-29 123/week @ 2024-02-05 17/week @ 2024-02-12 191/week @ 2024-02-19 60/week @ 2024-02-26 112/week @ 2024-03-04 46/week @ 2024-03-11 34/week @ 2024-03-18 77/week @ 2024-03-25 82/week @ 2024-04-01 24/week @ 2024-04-08 26/week @ 2024-04-15

211 downloads per month
Used in 2 crates (via gmod)

MIT license

7KB
91 lines

crates.io

fn_abi

A proc attribute macro that sets the ABI/calling convention for the attributed function.

Example

#[macro_use] extern crate fn_abi;

#[abi("fastcall")]
extern fn hello_world_fastcall() {
    println!("hello world!");
}

#[cfg_attr(all(target_os = "windows", target_pointer_width = "32"), abi("thiscall"))]
#[cfg_attr(all(target_os = "windows", target_pointer_width = "64"), abi("fastcall"))]
extern fn hello_world_windows() {
    println!("hello world!");
}

lib.rs:

fn_abi

A proc attribute macro that sets the ABI/calling convention for the attributed function.

Example

#[macro_use] extern crate fn_abi;

#[abi("fastcall")]
extern fn hello_world_fastcall() {
    println!("hello world!");
}

#[cfg_attr(all(target_os = "windows", target_pointer_width = "32"), abi("thiscall"))]
#[cfg_attr(all(target_os = "windows", target_pointer_width = "64"), abi("fastcall"))]
extern fn hello_world_windows() {
    println!("hello world!");
}

Dependencies

~1.5MB
~35K SLoC