pub mod r#async;
pub mod conversion;
pub mod external;
pub mod gpu;
pub mod linalg;
mod manager;
mod operation_manager;
pub mod sparse_tensor;
pub mod transform;
pub use self::{
external::{create_external, ExternalPass, RunExternalPass},
manager::PassManager,
operation_manager::OperationPassManager,
};
use mlir_sys::MlirPass;
pub struct Pass {
raw: MlirPass,
}
impl Pass {
pub unsafe fn from_raw_fn(create_raw: unsafe extern "C" fn() -> MlirPass) -> Self {
Self {
raw: unsafe { create_raw() },
}
}
pub const unsafe fn from_raw(raw: MlirPass) -> Self {
Self { raw }
}
pub const fn to_raw(&self) -> MlirPass {
self.raw
}
#[doc(hidden)]
pub unsafe fn __private_from_raw_fn(create_raw: unsafe extern "C" fn() -> MlirPass) -> Self {
Self::from_raw_fn(create_raw)
}
}