This makes it so that if you needed to include stdio.h in C now you would: use pact::stdio::*;
Pact
This library will provided the binding for the standard 'C' functions. Later, as a stretch goal, this library will attempt to implement those functions in Rust.
Features
This library handles several different ways of providing what is needed at the 'C' binding level.
Standard C Library
This is the default feature set.
It will provide a link to the 'C' standard library. This will make it so that your code is executable and can call functions and use structures from the standard 'C' library.
Rust C Library
default-features = false
features = ["rust_lib"]
Currently, this does not work. Later, this will provide a Rust version of all the 'C' standard library functions. This is a huge stretch goal. It may not happen, or it may take a really long time to get this done. This will require alot of platform specific work.
No Memory Manipulation
default-features = false
features = ["no_mem_manip"]
This feature tells the library to not define the memory manipulation functions that Rust requires for LLVM. These are:
- memcpy
- memmove
- memcmp
- memset
Weak
default-features = false
features = ["no_mem_manip", "weak"]
Activates weak linkage on ELF objects. This is only useful when combined with the 'no_mem_manip' feature.