code: def _generate_struct_cstor_default(self, struct):
          
          if not self._struct_has_defaults(struct):
              return
  
          fields_no_default = [
              f for f in struct.all_fields
              if not f.has_default and not is_nullable_type(f.data_type)
          ]
  
          with self.block_func(
                  func=self._cstor_name_from_fields(fields_no_default),
                  args=fmt_func_args_from_fields(fields_no_default),
                  return_type='instancetype'):
              args = ([(fmt_var(f.name), fmt_var(f.name) if not f.has_default and
                        not is_nullable_type(f.data_type) else 'nil')
                       for f in struct.all_fields])
              cstor_args = fmt_func_args(args)
              self.emit('return [self {}:{}];'.format(
                  self._cstor_name_from_fields(struct.all_fields), cstor_args))
          self.emit()
docs: Emits struct convenience constructor. Default arguments are omitted.