def _generate_struct_cstor_default(self, struct):
if not self._struct_has_defaults(struct):<EOL><INDENT>return<EOL><DEDENT>fields_no_default = [<EOL>f for f in struct.all_fields<EOL>if not f.has_default and not is_nullable_type(f.data_type)<EOL>]<EOL>with self.block_func(<EOL>func=self._cstor_name_from_fields(fields_no_default),<EOL>args=fmt_func_args_from_fields(fields_no_default),<EOL>return_type='<STR_LIT>'):<EOL><INDENT>args = ([(fmt_var(f.name), fmt_var(f.name) if not f.has_default and<EOL>not is_nullable_type(f.data_type) else '<STR_LIT>')<EOL>for f in struct.all_fields])<EOL>cstor_args = fmt_func_args(args)<EOL>self.emit('<STR_LIT>'.format(<EOL>self._cstor_name_from_fields(struct.all_fields), cstor_args))<EOL><DEDENT>self.emit()<EOL>
Emits struct convenience constructor. Default arguments are omitted.