projects
/
learn-rust.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Call Rust function from C: Skeleton
[learn-rust.git]
/
call-rust-from-c
/
src
/
lib.rs
1
use std::os::raw;
2
3
/// Return The Answer.
4
///
5
/// # Example
6
///
7
/// ```
8
/// let a = call_rust_from_c::answer();
9
/// assert_eq!(a, 42);
10
/// ```
11
#[no_mangle]
12
// C 'int'; it does not actually hurt to have more specific types such as int32_t, but it's good to know that plain ints work
13
pub extern "C" fn answer() -> raw::c_int {
14
return 42;
15
}
16
17
18
#[cfg(test)]
19
mod tests {
20
use super::*;
21
22
#[test]
23
fn test_answer() {
24
assert_eq!(answer(), 42);
25
}
26
}