device-driver-lir 2.0.0

Internal compiler crate for the device-driver toolkit
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use device_driver_diagnostics::{DynError, ResultExt};

mod lowering;
pub mod model;

pub fn lower_mir(manifest: device_driver_mir::model::Manifest) -> Result<model::Driver, DynError> {
    let enums = lowering::transform_enums(&manifest);
    let field_sets = lowering::transform_field_sets(&manifest)
        .with_message(|| "could not transform fieldsets")?;
    let devices =
        lowering::transform_devices(&manifest).with_message(|| "could not transform devices")?;

    Ok(model::Driver {
        devices,
        field_sets,
        enums,
    })
}