aboutsummaryrefslogtreecommitdiff
path: root/patio-to-cranelift/src/patio/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'patio-to-cranelift/src/patio/mod.rs')
-rw-r--r--patio-to-cranelift/src/patio/mod.rs73
1 files changed, 67 insertions, 6 deletions
diff --git a/patio-to-cranelift/src/patio/mod.rs b/patio-to-cranelift/src/patio/mod.rs
index 4316b519..3027cda4 100644
--- a/patio-to-cranelift/src/patio/mod.rs
+++ b/patio-to-cranelift/src/patio/mod.rs
@@ -1,6 +1,67 @@
-pub(crate) mod compilation_unit;
-pub(crate) mod flatbuffers;
-pub(crate) mod instructions;
-pub(crate) mod operands;
-pub(crate) mod types;
-pub(crate) mod values;
+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");
+}