Skip to main content

device_driver_lir/
lib.rs

1use device_driver_diagnostics::{DynError, ResultExt};
2
3mod lowering;
4pub mod model;
5
6pub fn lower_mir(manifest: device_driver_mir::model::Manifest) -> Result<model::Driver, DynError> {
7    let enums = lowering::transform_enums(&manifest);
8    let field_sets = lowering::transform_field_sets(&manifest)
9        .with_message(|| "could not transform fieldsets")?;
10    let devices =
11        lowering::transform_devices(&manifest).with_message(|| "could not transform devices")?;
12
13    Ok(model::Driver {
14        devices,
15        field_sets,
16        enums,
17    })
18}