#cross-compilation #abi #extern

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

#13 in #cross-compilation

Download history 81/week @ 2024-07-20 58/week @ 2024-07-27 18/week @ 2024-08-03 22/week @ 2024-08-10 9/week @ 2024-08-17 12/week @ 2024-08-24 16/week @ 2024-08-31 27/week @ 2024-09-07 21/week @ 2024-09-14 46/week @ 2024-09-21 30/week @ 2024-09-28 5/week @ 2024-10-05 17/week @ 2024-10-12 16/week @ 2024-10-19 34/week @ 2024-10-26 29/week @ 2024-11-02

96 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
~37K SLoC