summaryrefslogtreecommitdiffstats
path: root/tests/rust/function_args.rs
blob: 52a6a2341cd7ec04e640fdb272ff95c3c4d780ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#[no_mangle]
pub unsafe extern fn array_print(a: &[u64]) {
    eprintln!("{:?}", a);
}

#[no_mangle]
pub unsafe extern fn array_test(a: [u64; 3]) {
    array_print(&a);
}

#[no_mangle]
pub unsafe extern fn unnamed(_: *const u64) {
}

#[no_mangle]
pub unsafe extern fn pointer_test(a: *const u64) {
    let a = std::slice::from_raw_parts(a, 3);
    array_print(a);
}

#[no_mangle]
pub unsafe extern fn print_from_rust() {
    let a = [0, 1, 2];
    array_print(&a);
}