<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def new_struct(self, type, name, *parameters):
 """Defines a new struct to template. You must call `End Struct` to end struct definition. `type` is the name for generic type and `name` is the field name in containing structure. Possible parameters are values for struct fields separated with colon and optional struct length defined with `length=`. Length can be used in receiveing to validate that struct matches predfeined length. When sending, the struct length can refer to other message field which will then be set dynamically. Examples: | New struct | Pair | myPair | | u8 | first | | u8 | second | | End Struct | """

        configs, parameters, _ = self._get_parameters_with_defaults(parameters)
        self._add_struct_name_to_params(name, parameters)
        self._message_stack.append(StructTemplate(type, name, self._current_container, parameters, length=configs.get('length'), align=configs.get('align')))