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}