#pragma once

#include "LibLsp/JsonRpc/RequestInMessage.h"
#include "LibLsp/JsonRpc/lsResponseMessage.h"
#include <string>
#include "checkHashCodeEqualsStatus.h"

struct AccessorField
{
   std::string fieldName;
   bool isStatic = false;
   bool generateGetter = false;
   bool generateSetter = false;
   void swap(AccessorField& arg) noexcept
   {
       fieldName.swap(arg.fieldName);
       std::swap(isStatic, arg.isStatic);
       std::swap(generateGetter, arg.generateGetter);
       std::swap(generateSetter, arg.generateSetter);
   }
};

MAKE_REFLECT_STRUCT(AccessorField, fieldName, isStatic, generateGetter, generateSetter)

DEFINE_REQUEST_RESPONSE_TYPE(
   java_resolveUnimplementedAccessors, lsCodeActionParams, std::vector<AccessorField>,
   "java/resolveUnimplementedAccessors"
);