CodeGenLib/lib.rs
1//! CodeGenLib is a rust libary to generate x86-64Bit machine code (like llvm)
2//!
3//! <h4>Example</h4>
4//!
5//! ```
6//! use CodeGenLib::{Builder, ArtifactError}
7//!
8//! pub fn main() -> Result<(), ArtifactError> {
9//! let mut builder = Builder::new();
10//!
11//! builder.add_function("call")
12//! .call("callme")
13//! .ret_int(1);
14//!
15//! builder.build("test.o")?;
16//!
17//! Ok(())
18//! }
19//! ```
20//!
21//! The examples would make a elf file with a function named call wich just calls
22//! a function named callme and then returns a 1
23
24#![allow(non_snake_case)]
25
26pub mod x86;
27pub mod opt;
28pub mod error;
29pub mod arch;
30#[cfg(feature = "jit")]
31pub mod jit;
32
33pub use x86::*;
34pub use x86::function::Function as Function;
35pub use x86::builder::Builder as Builder;
36pub use x86::mem::AdressManager as AdressManager;
37pub use opt::optimize::Optimize as OptimizeTrait;
38pub use error::Result as Result;
39pub use error::CodeGenLibError as CodeGenLibError;
40pub use arch::def::Arch as Arch;
41
42#[cfg(feature = "jit")]
43pub use jit::typed::JitRuntime as Jit;
44
45/// ArtifactError exportet from the faerie crate
46pub use faerie::ArtifactError as ArtifactError;