code: def _generate_serializable_funcs(self, data_type_name):
          
          with self.block_func(
                  func='serialize',
                  args=fmt_func_args_declaration([('instance', 'id')]),
                  return_type='nullable NSDictionary<NSString *, id>  *',
                  class_func=True):
              func_call = fmt_func_call(
                  caller=fmt_serial_class(data_type_name),
                  callee='serialize',
                  args=fmt_func_args([('instance', 'instance')]))
              self.emit('return {};'.format(func_call))
          self.emit()
  
          with self.block_func(
                  func='deserialize',
                  args=fmt_func_args_declaration([('dict', 'NSDictionary<NSString *, id>  *')]),
                  return_type='id',
                  class_func=True):
              self.emit('return {};'.format(
                  fmt_func_call(
                      caller=fmt_serial_class(data_type_name),
                      callee='deserialize',
                      args=fmt_func_args([('dict', 'dict')]))))
          self.emit()
docs: Emits the two struct/union functions that implement the Serializable protocol.