Fix: Field list and struct all order

This commit is contained in:
2026-05-05 15:58:42 +02:00
parent 95c4826b5f
commit dfc3a56dff
3 changed files with 4 additions and 6 deletions
+2 -4
View File
@@ -1,9 +1,7 @@
use std::collections::HashMap;
use serde::Serialize; use serde::Serialize;
#[derive(Debug, Clone, Serialize)] #[derive(Debug, Clone, Serialize)]
pub struct FieldList(pub HashMap<String, (bool, TypeExpr)>); pub struct FieldList(pub Vec<(String, bool, TypeExpr)>);
#[derive(Debug, Clone, Serialize)] #[derive(Debug, Clone, Serialize)]
pub struct ParamList(pub Vec<VarDecl>); pub struct ParamList(pub Vec<VarDecl>);
@@ -83,7 +81,7 @@ pub enum Postfix {
FieldAccess(String), FieldAccess(String),
Call(Vec<Expression>), Call(Vec<Expression>),
MacroCall(String), MacroCall(String),
StructCall(HashMap<String, Expression>), StructCall(Vec<(String, Expression)>),
Index(Expression), Index(Expression),
Binary(BinaryOp, Expression), Binary(BinaryOp, Expression),
} }
+1 -1
View File
@@ -104,7 +104,7 @@ impl From<pest::iterators::Pair<'_, Rule>> for FieldList {
}; };
let param_type = TypeExpr::from(param_inner.next().unwrap()); let param_type = TypeExpr::from(param_inner.next().unwrap());
let param_name = param_inner.next().unwrap().as_str().to_string(); let param_name = param_inner.next().unwrap().as_str().to_string();
(param_name, (export, param_type)) (param_name, export, param_type)
}) })
.collect(); .collect();
+1 -1
View File
@@ -284,7 +284,7 @@ impl ToRust for TopLevelKind {
cg.addln(&format!("{}struct {} {{", vis, name)); cg.addln(&format!("{}struct {} {{", vis, name));
cg.indent += 1; cg.indent += 1;
for (field_name, (_, ty)) in &fields.0 { for (field_name, _, ty) in &fields.0 {
let ty = ty.get_rust(); let ty = ty.get_rust();
cg.add_indentedln(&format!("pub {}: {},", field_name, ty)); cg.add_indentedln(&format!("pub {}: {},", field_name, ty));
} }