1pub mod r#async;
4pub mod conversion;
5pub mod external;
6pub mod gpu;
7pub mod linalg;
8mod manager;
9mod operation_manager;
10pub mod sparse_tensor;
11pub mod transform;
12
13pub use self::{
14 external::{create_external, ExternalPass, RunExternalPass},
15 manager::PassManager,
16 operation_manager::OperationPassManager,
17};
18use mlir_sys::MlirPass;
19
20pub struct Pass {
22 raw: MlirPass,
23}
24
25impl Pass {
26 pub unsafe fn from_raw_fn(create_raw: unsafe extern "C" fn() -> MlirPass) -> Self {
32 Self {
33 raw: unsafe { create_raw() },
34 }
35 }
36
37 pub const unsafe fn from_raw(raw: MlirPass) -> Self {
43 Self { raw }
44 }
45
46 pub const fn to_raw(&self) -> MlirPass {
48 self.raw
49 }
50
51 #[doc(hidden)]
52 pub unsafe fn __private_from_raw_fn(create_raw: unsafe extern "C" fn() -> MlirPass) -> Self {
53 Self::from_raw_fn(create_raw)
54 }
55}