pub trait LuaGenerator {
Show 63 methods
// Required methods
fn into_string(self) -> String;
fn write_block(&mut self, block: &Block);
fn write_assign_statement(&mut self, assign: &AssignStatement);
fn write_do_statement(&mut self, do_statement: &DoStatement);
fn write_compound_assign(&mut self, assign: &CompoundAssignStatement);
fn write_generic_for(&mut self, generic_for: &GenericForStatement);
fn write_if_statement(&mut self, if_statement: &IfStatement);
fn write_function_statement(&mut self, function: &FunctionStatement);
fn write_last_statement(&mut self, statement: &LastStatement);
fn write_local_assign(&mut self, assign: &LocalAssignStatement);
fn write_local_function(&mut self, function: &LocalFunctionStatement);
fn write_numeric_for(&mut self, numeric_for: &NumericForStatement);
fn write_repeat_statement(&mut self, repeat: &RepeatStatement);
fn write_while_statement(&mut self, while_statement: &WhileStatement);
fn write_type_declaration_statement(
&mut self,
statement: &TypeDeclarationStatement,
);
fn write_identifier(&mut self, identifier: &Identifier);
fn write_binary_expression(&mut self, binary: &BinaryExpression);
fn write_if_expression(&mut self, if_expression: &IfExpression);
fn write_unary_expression(&mut self, unary: &UnaryExpression);
fn write_function(&mut self, function: &FunctionExpression);
fn write_function_call(&mut self, call: &FunctionCall);
fn write_field(&mut self, field: &FieldExpression);
fn write_index(&mut self, index: &IndexExpression);
fn write_parenthese(&mut self, parenthese: &ParentheseExpression);
fn write_type_cast(&mut self, type_cast: &TypeCastExpression);
fn write_false_expression(&mut self, token: &Option<Token>);
fn write_true_expression(&mut self, token: &Option<Token>);
fn write_nil_expression(&mut self, token: &Option<Token>);
fn write_variable_arguments_expression(&mut self, token: &Option<Token>);
fn write_table(&mut self, table: &TableExpression);
fn write_table_entry(&mut self, entry: &TableEntry);
fn write_number(&mut self, number: &NumberExpression);
fn write_tuple_arguments(&mut self, arguments: &TupleArguments);
fn write_string(&mut self, string: &StringExpression);
fn write_interpolated_string(
&mut self,
string: &InterpolatedStringExpression,
);
fn write_type_name(&mut self, type_name: &TypeName);
fn write_type_field(&mut self, type_field: &TypeField);
fn write_true_type(&mut self, token: &Option<Token>);
fn write_false_type(&mut self, token: &Option<Token>);
fn write_nil_type(&mut self, token: &Option<Token>);
fn write_string_type(&mut self, string_type: &StringType);
fn write_array_type(&mut self, array_type: &ArrayType);
fn write_table_type(&mut self, table_type: &TableType);
fn write_expression_type(&mut self, expression_type: &ExpressionType);
fn write_parenthese_type(&mut self, parenthese_type: &ParentheseType);
fn write_function_type(&mut self, function_type: &FunctionType);
fn write_optional_type(&mut self, optional_type: &OptionalType);
fn write_intersection_type(&mut self, intersection_type: &IntersectionType);
fn write_union_type(&mut self, union_type: &UnionType);
fn write_type_pack(&mut self, type_pack: &TypePack);
fn write_variadic_type_pack(
&mut self,
variadic_type_pack: &VariadicTypePack,
);
fn write_generic_type_pack(&mut self, generic_type_pack: &GenericTypePack);
// Provided methods
fn write_statement(&mut self, statement: &Statement) { ... }
fn write_variable(&mut self, variable: &Variable) { ... }
fn write_expression(&mut self, expression: &Expression) { ... }
fn write_prefix(&mut self, prefix: &Prefix) { ... }
fn write_arguments(&mut self, arguments: &Arguments) { ... }
fn write_type(&mut self, type: &Type) { ... }
fn write_function_return_type(&mut self, return_type: &FunctionReturnType) { ... }
fn write_variadic_argument_type(
&mut self,
variadic_argument_type: &VariadicArgumentType,
) { ... }
fn write_function_variadic_type(
&mut self,
variadic_type: &FunctionVariadicType,
) { ... }
fn write_type_parameter(&mut self, type_parameter: &TypeParameter) { ... }
fn write_generic_type_pack_default(
&mut self,
generic_type_pack_default: &GenericTypePackDefault,
) { ... }
}
Expand description
A trait to let its implementation define how the Lua code is generated. See ReadableLuaGenerator and DenseLuaGenerator for implementations.
Required Methods§
Sourcefn into_string(self) -> String
fn into_string(self) -> String
Consumes the LuaGenerator and produce a String object.