include!("../gen/patio.rs"); pub(crate) mod instructions { include!("../gen/patio/instructions.rs"); #[allow(unused)] pub(crate) mod transient_0 { include!("../gen/patio/instructions/transient_0.rs"); } } pub(crate) mod operands { include!("../gen/patio/operands.rs"); #[allow(unused)] pub(crate) mod transient_0 { include!("../gen/patio/operands/transient_0.rs"); } } pub(crate) mod types { include!("../gen/patio/types.rs"); impl PatioDataValue { pub(crate) fn layout(&self) -> PatioDataLayout { match self { PatioDataValue::PatioDataValueArray(array) => PatioDataLayoutArray { element: array.element_layout.clone(), size: array.elements.len().try_into().unwrap(), } .into(), PatioDataValue::PatioDataValueBool(_) => PatioDataLayoutBool.into(), PatioDataValue::PatioDataValueByte(_) => PatioDataLayoutByte.into(), PatioDataValue::PatioDataValueDataPtr(_) => PatioDataLayoutDataPtr.into(), PatioDataValue::PatioDataValueInt(_) => PatioDataLayoutInt.into(), PatioDataValue::PatioDataValueInt32(_) => PatioDataLayoutInt32.into(), PatioDataValue::PatioDataValueStruct(value_struct) => PatioDataLayoutStruct { elements: value_struct .elements .iter() .map(|element| element.layout()) .collect(), } .into(), } } } #[allow(unused)] pub(crate) mod transient_0 { include!("../gen/patio/types/transient_0.rs"); } } pub(crate) mod values { include!("../gen/patio/values.rs"); #[allow(unused)] pub(crate) mod transient_0 { include!("../gen/patio/values/transient_0.rs"); } } #[allow(unused)] pub(crate) mod transient_0 { include!("../gen/patio/transient_0.rs"); }