generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.cpp [plain text]
#include "config.h"
#include "generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.h"
#if ENABLE(WEB_REPLAY)
#include "InternalNamespaceImplIncludeDummy.h"
#include <platform/ExternalNamespaceImplIncludeDummy.h>
#include <platform/PlatformMouseEvent.h>
namespace Test {
SavedMouseButton::SavedMouseButton(MouseButton button)
: NondeterministicInput<SavedMouseButton>()
, m_button(button)
{
}
SavedMouseButton::~SavedMouseButton()
{
}
}
namespace JSC {
const AtomicString& InputTraits<Test::SavedMouseButton>::type()
{
static NeverDestroyed<const AtomicString> type("SavedMouseButton", AtomicString::ConstructFromLiteral);
return type;
}
void InputTraits<Test::SavedMouseButton>::encode(EncodedValue& encodedValue, const Test::SavedMouseButton& input)
{
encodedValue.put<WebCore::MouseButton>(ASCIILiteral("button"), input.button());
}
bool InputTraits<Test::SavedMouseButton>::decode(EncodedValue& encodedValue, std::unique_ptr<Test::SavedMouseButton>& input)
{
WebCore::MouseButton button;
if (!encodedValue.get<WebCore::MouseButton>(ASCIILiteral("button"), button))
return false;
input = std::make_unique<Test::SavedMouseButton>(button);
return true;
}
EncodedValue EncodingTraits<WebCore::MouseButton>::encodeValue(const WebCore::MouseButton& enumValue)
{
EncodedValue encodedValue = EncodedValue::createArray();
if (enumValue & WebCore::NoButton) {
encodedValue.append<String>(ASCIILiteral("NoButton"));
if (enumValue == WebCore::NoButton)
return encodedValue;
}
if (enumValue & WebCore::LeftButton) {
encodedValue.append<String>(ASCIILiteral("LeftButton"));
if (enumValue == WebCore::LeftButton)
return encodedValue;
}
if (enumValue & WebCore::MiddleButton) {
encodedValue.append<String>(ASCIILiteral("MiddleButton"));
if (enumValue == WebCore::MiddleButton)
return encodedValue;
}
if (enumValue & WebCore::RightButton) {
encodedValue.append<String>(ASCIILiteral("RightButton"));
if (enumValue == WebCore::RightButton)
return encodedValue;
}
#if ENABLE(SIDE_BUTTONS)
if (enumValue & WebCore::LeftSideButton) {
encodedValue.append<String>(ASCIILiteral("LeftSideButton"));
if (enumValue == WebCore::LeftSideButton)
return encodedValue;
}
if (enumValue & WebCore::RightSideButton) {
encodedValue.append<String>(ASCIILiteral("RightSideButton"));
if (enumValue == WebCore::RightSideButton)
return encodedValue;
}
#endif // ENABLE(SIDE_BUTTONS)
#if PLATFORM(WINDOWS)
if (enumValue & WebCore::WindowsButton) {
encodedValue.append<String>(ASCIILiteral("WindowsButton"));
if (enumValue == WebCore::WindowsButton)
return encodedValue;
}
#endif // PLATFORM(WINDOWS)
return encodedValue;
}
bool EncodingTraits<WebCore::MouseButton>::decodeValue(EncodedValue& encodedValue, WebCore::MouseButton& enumValue)
{
Vector<String> enumStrings;
if (!EncodingTraits<Vector<String>>::decodeValue(encodedValue, enumStrings))
return false;
for (String enumString : enumStrings) {
if (enumString == "NoButton")
enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::NoButton);
if (enumString == "LeftButton")
enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::LeftButton);
if (enumString == "MiddleButton")
enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::MiddleButton);
if (enumString == "RightButton")
enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::RightButton);
#if ENABLE(SIDE_BUTTONS)
if (enumString == "LeftSideButton")
enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::LeftSideButton);
if (enumString == "RightSideButton")
enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::RightSideButton);
#endif // ENABLE(SIDE_BUTTONS)
#if PLATFORM(WINDOWS)
if (enumString == "WindowsButton")
enumValue = static_cast<WebCore::MouseButton>(enumValue | WebCore::WindowsButton);
#endif // PLATFORM(WINDOWS)
}
return true;
}
}
#endif // ENABLE(WEB_REPLAY)