pub trait LuaGenerator {
Show 70 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: &VariableAssignment);
fn write_local_function(&mut self, function: &FunctionAssignment);
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_type_function_statement(
&mut self,
statement: &TypeFunctionStatement,
);
fn write_attribute_tuple_arguments(
&mut self,
tuple: &AttributeTupleArguments,
);
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_type_instantiation(
&mut self,
type_instantiation: &TypeInstantiationExpression,
);
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_literal_table(&mut self, table: &LiteralTable);
fn write_literal_table_entry(&mut self, entry: &LiteralTableEntry);
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_literal_expression(&mut self, expression: &LiteralExpression) { ... }
fn write_attribute_arguments(&mut self, arguments: &AttributeArguments) { ... }
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.
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: &VariableAssignment)
fn write_local_function(&mut self, function: &FunctionAssignment)
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_type_function_statement(&mut self, statement: &TypeFunctionStatement)
fn write_attribute_tuple_arguments(&mut self, tuple: &AttributeTupleArguments)
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_type_instantiation( &mut self, type_instantiation: &TypeInstantiationExpression, )
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_literal_table(&mut self, table: &LiteralTable)
fn write_literal_table_entry(&mut self, entry: &LiteralTableEntry)
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_literal_expression(&mut self, expression: &LiteralExpression)
fn write_attribute_arguments(&mut self, arguments: &AttributeArguments)
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, )
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".