//
// Automatically generated by ipdlc.
// Edit at your own risk
//


#include "mozilla/GfxMessageUtils.h"
#include "mozilla/dom/PBrowserParent.h"
#include "mozilla/dom/PBrowserChild.h"
#include "mozilla/a11y/PDocAccessible.h"
#include "mozilla/a11y/PDocAccessibleParent.h"
#include "mozilla/a11y/PDocAccessibleChild.h"

#include "ipc/IPCMessageUtils.h"
#include "ipc/IPCMessageUtilsSpecializations.h"
#include "nsIFile.h"
#include "mozilla/ipc/Endpoint.h"
#include "mozilla/ipc/ProtocolMessageUtils.h"
#include "mozilla/ipc/ProtocolUtils.h"
#include "mozilla/ipc/ShmemMessageUtils.h"
#include "mozilla/ipc/TaintingIPCUtils.h"

namespace mozilla {
namespace a11y {
namespace PDocAccessible {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::a11y::PDocAccessibleParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::a11y::PDocAccessibleChild>* aChild)
{
    return mozilla::ipc::CreateEndpoints(
        mozilla::ipc::PrivateIPDLInterface(),
        aParentDestInfo, aChildDestInfo, aParent, aChild);
}
mozilla::UniquePtr<IPC::Message>
Msg_Shutdown(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_Shutdown__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_Event(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_Event__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_StateChangeEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_StateChangeEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_CaretMoveEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_CaretMoveEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_MutationEvents(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_MutationEvents__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_RequestAckMutationEvents(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_RequestAckMutationEvents__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_SelectionEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_SelectionEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_RoleChangedEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_RoleChangedEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_FocusEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_FocusEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ScrollingEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ScrollingEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_AnnouncementEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_AnnouncementEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_TextSelectionChangeEvent(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_TextSelectionChangeEvent__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_BindChildDoc(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_BindChildDoc__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_Cache(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_Cache__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_SelectedAccessiblesChanged(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_SelectedAccessiblesChanged__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_AccessiblesWillMove(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_AccessiblesWillMove__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Reply___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Reply___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_RestoreFocus(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_RestoreFocus__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ScrollTo(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ScrollTo__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ScrollToPoint(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ScrollToPoint__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_Announce(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_Announce__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_SetTextSelection(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_SetTextSelection__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_RemoveTextSelection(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_RemoveTextSelection__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ScrollTextLeafRangeIntoView(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ScrollTextLeafRangeIntoView__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ScrollSubstringToPoint(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ScrollSubstringToPoint__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_ReplaceText(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_ReplaceText__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_InsertText(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_InsertText__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_CopyText(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_CopyText__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_CutText(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_CutText__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_DeleteText(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_DeleteText__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_PasteText(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_PasteText__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_TakeSelection(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_TakeSelection__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_SetSelected(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_SetSelected__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_DoActionAsync(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_DoActionAsync__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_SetCurValue(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_SetCurValue__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_TakeFocus(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_TakeFocus__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_VerifyCache(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_VerifyCache__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_AckMutationEvents(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_AckMutationEvents__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}

} // namespace PDocAccessible
} // namespace a11y
} // namespace mozilla

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct AccessibleData|
//
namespace mozilla {
namespace a11y {
auto AccessibleData::StaticAssertions() const -> void
{
    static_assert(
        (offsetof(AccessibleData, ParentID_) - offsetof(AccessibleData, ID_)) == 8,
        "Bad assumptions about field layout!");
}

} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::AccessibleData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).Role());
    // Sentinel = 'Role'
    (aWriter)->WriteSentinel(64356755);
    IPC::WriteParam(aWriter, (aVar).Type());
    // Sentinel = 'Type'
    (aWriter)->WriteSentinel(67371427);
    IPC::WriteParam(aWriter, (aVar).GenericTypes());
    // Sentinel = 'GenericTypes'
    (aWriter)->WriteSentinel(510002387);
    IPC::WriteParam(aWriter, (aVar).CacheFields());
    // Sentinel = 'CacheFields'
    (aWriter)->WriteSentinel(402129964);
    (aWriter)->WriteBytes((&((aVar).ID())), 16);
    // Sentinel = 'ID | ParentID'
    (aWriter)->WriteSentinel(469763137);
    (aWriter)->WriteBytes((&((aVar).IndexInParent())), 4);
    // Sentinel = 'IndexInParent'
    (aWriter)->WriteSentinel(582354202);
    (aWriter)->WriteBytes((&((aVar).RoleMapEntryIndex())), 1);
    // Sentinel = 'RoleMapEntryIndex'
    (aWriter)->WriteSentinel(994641595);
}

auto ParamTraits<::mozilla::a11y::AccessibleData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___Role = IPC::ReadParam<::mozilla::a11y::role>(aReader);
    if (!maybe___Role) {
        aReader->FatalError("Error deserializing 'Role' (role) member of 'AccessibleData'");
        return {};

    }
    auto& _Role = *maybe___Role;
    // Sentinel = 'Role'
    if ((!((aReader)->ReadSentinel(64356755)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'Role' (role) member of 'AccessibleData'");
        return {};
    }
    auto maybe___Type = IPC::ReadParam<::mozilla::a11y::AccType>(aReader);
    if (!maybe___Type) {
        aReader->FatalError("Error deserializing 'Type' (AccType) member of 'AccessibleData'");
        return {};

    }
    auto& _Type = *maybe___Type;
    // Sentinel = 'Type'
    if ((!((aReader)->ReadSentinel(67371427)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'Type' (AccType) member of 'AccessibleData'");
        return {};
    }
    auto maybe___GenericTypes = IPC::ReadParam<::mozilla::a11y::AccGenericType>(aReader);
    if (!maybe___GenericTypes) {
        aReader->FatalError("Error deserializing 'GenericTypes' (AccGenericType) member of 'AccessibleData'");
        return {};

    }
    auto& _GenericTypes = *maybe___GenericTypes;
    // Sentinel = 'GenericTypes'
    if ((!((aReader)->ReadSentinel(510002387)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'GenericTypes' (AccGenericType) member of 'AccessibleData'");
        return {};
    }
    auto maybe___CacheFields = IPC::ReadParam<RefPtr<::mozilla::a11y::AccAttributes>>(aReader);
    if (!maybe___CacheFields) {
        aReader->FatalError("Error deserializing 'CacheFields' (AccAttributes) member of 'AccessibleData'");
        return {};

    }
    auto& _CacheFields = *maybe___CacheFields;
    // Sentinel = 'CacheFields'
    if ((!((aReader)->ReadSentinel(402129964)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'CacheFields' (AccAttributes) member of 'AccessibleData'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            ::uint64_t{0},
            std::move(_Role),
            ::uint64_t{0},
            ::uint32_t{0},
            std::move(_Type),
            std::move(_GenericTypes),
            ::uint8_t{0},
            std::move(_CacheFields)};
    if ((!((aReader)->ReadBytesInto((&((result__)->ID())), 16)))) {
        aReader->FatalError("Error bulk reading fields from uint64_t");
        return {};
    }
    // Sentinel = 'ID | ParentID'
    if ((!((aReader)->ReadSentinel(469763137)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint64_t");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->IndexInParent())), 4)))) {
        aReader->FatalError("Error bulk reading fields from uint32_t");
        return {};
    }
    // Sentinel = 'IndexInParent'
    if ((!((aReader)->ReadSentinel(582354202)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint32_t");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->RoleMapEntryIndex())), 1)))) {
        aReader->FatalError("Error bulk reading fields from uint8_t");
        return {};
    }
    // Sentinel = 'RoleMapEntryIndex'
    if ((!((aReader)->ReadSentinel(994641595)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint8_t");
        return {};
    }
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct CacheEventData|
//
namespace mozilla {
namespace a11y {
} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::CacheEventData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).UpdateType());
    // Sentinel = 'UpdateType'
    (aWriter)->WriteSentinel(365167622);
    IPC::WriteParam(aWriter, (aVar).aData());
    // Sentinel = 'aData'
    (aWriter)->WriteSentinel(90571228);
}

auto ParamTraits<::mozilla::a11y::CacheEventData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___UpdateType = IPC::ReadParam<::mozilla::a11y::CacheUpdateType>(aReader);
    if (!maybe___UpdateType) {
        aReader->FatalError("Error deserializing 'UpdateType' (CacheUpdateType) member of 'CacheEventData'");
        return {};

    }
    auto& _UpdateType = *maybe___UpdateType;
    // Sentinel = 'UpdateType'
    if ((!((aReader)->ReadSentinel(365167622)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'UpdateType' (CacheUpdateType) member of 'CacheEventData'");
        return {};
    }
    auto maybe___aData = IPC::ReadParam<nsTArray<::mozilla::a11y::CacheData>>(aReader);
    if (!maybe___aData) {
        aReader->FatalError("Error deserializing 'aData' (CacheData[]) member of 'CacheEventData'");
        return {};

    }
    auto& _aData = *maybe___aData;
    // Sentinel = 'aData'
    if ((!((aReader)->ReadSentinel(90571228)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'aData' (CacheData[]) member of 'CacheEventData'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_UpdateType),
            std::move(_aData)};
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct ShowEventData|
//
namespace mozilla {
namespace a11y {
} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::ShowEventData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).NewTree());
    // Sentinel = 'NewTree'
    (aWriter)->WriteSentinel(179241659);
    IPC::WriteParam(aWriter, (aVar).EventSuppressed());
    // Sentinel = 'EventSuppressed'
    (aWriter)->WriteSentinel(817235505);
    IPC::WriteParam(aWriter, (aVar).Complete());
    // Sentinel = 'Complete'
    (aWriter)->WriteSentinel(236127034);
    IPC::WriteParam(aWriter, (aVar).FromUser());
    // Sentinel = 'FromUser'
    (aWriter)->WriteSentinel(234488628);
}

auto ParamTraits<::mozilla::a11y::ShowEventData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___NewTree = IPC::ReadParam<nsTArray<::mozilla::a11y::AccessibleData>>(aReader);
    if (!maybe___NewTree) {
        aReader->FatalError("Error deserializing 'NewTree' (AccessibleData[]) member of 'ShowEventData'");
        return {};

    }
    auto& _NewTree = *maybe___NewTree;
    // Sentinel = 'NewTree'
    if ((!((aReader)->ReadSentinel(179241659)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'NewTree' (AccessibleData[]) member of 'ShowEventData'");
        return {};
    }
    auto maybe___EventSuppressed = IPC::ReadParam<bool>(aReader);
    if (!maybe___EventSuppressed) {
        aReader->FatalError("Error deserializing 'EventSuppressed' (bool) member of 'ShowEventData'");
        return {};

    }
    auto& _EventSuppressed = *maybe___EventSuppressed;
    // Sentinel = 'EventSuppressed'
    if ((!((aReader)->ReadSentinel(817235505)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'EventSuppressed' (bool) member of 'ShowEventData'");
        return {};
    }
    auto maybe___Complete = IPC::ReadParam<bool>(aReader);
    if (!maybe___Complete) {
        aReader->FatalError("Error deserializing 'Complete' (bool) member of 'ShowEventData'");
        return {};

    }
    auto& _Complete = *maybe___Complete;
    // Sentinel = 'Complete'
    if ((!((aReader)->ReadSentinel(236127034)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'Complete' (bool) member of 'ShowEventData'");
        return {};
    }
    auto maybe___FromUser = IPC::ReadParam<bool>(aReader);
    if (!maybe___FromUser) {
        aReader->FatalError("Error deserializing 'FromUser' (bool) member of 'ShowEventData'");
        return {};

    }
    auto& _FromUser = *maybe___FromUser;
    // Sentinel = 'FromUser'
    if ((!((aReader)->ReadSentinel(234488628)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'FromUser' (bool) member of 'ShowEventData'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_NewTree),
            std::move(_EventSuppressed),
            std::move(_Complete),
            std::move(_FromUser)};
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct HideEventData|
//
namespace mozilla {
namespace a11y {
} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::HideEventData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).IsFromUserInput());
    // Sentinel = 'IsFromUserInput'
    (aWriter)->WriteSentinel(778307072);
    (aWriter)->WriteBytes((&((aVar).ID())), 8);
    // Sentinel = 'ID'
    (aWriter)->WriteSentinel(14155918);
}

auto ParamTraits<::mozilla::a11y::HideEventData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___IsFromUserInput = IPC::ReadParam<bool>(aReader);
    if (!maybe___IsFromUserInput) {
        aReader->FatalError("Error deserializing 'IsFromUserInput' (bool) member of 'HideEventData'");
        return {};

    }
    auto& _IsFromUserInput = *maybe___IsFromUserInput;
    // Sentinel = 'IsFromUserInput'
    if ((!((aReader)->ReadSentinel(778307072)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'IsFromUserInput' (bool) member of 'HideEventData'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            ::uint64_t{0},
            std::move(_IsFromUserInput)};
    if ((!((aReader)->ReadBytesInto((&((result__)->ID())), 8)))) {
        aReader->FatalError("Error bulk reading fields from uint64_t");
        return {};
    }
    // Sentinel = 'ID'
    if ((!((aReader)->ReadSentinel(14155918)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint64_t");
        return {};
    }
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct ReorderEventData|
//
namespace mozilla {
namespace a11y {
} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::ReorderEventData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    (aWriter)->WriteBytes((&((aVar).ID())), 8);
    // Sentinel = 'ID'
    (aWriter)->WriteSentinel(14155918);
    (aWriter)->WriteBytes((&((aVar).Type())), 4);
    // Sentinel = 'Type'
    (aWriter)->WriteSentinel(67371427);
}

auto ParamTraits<::mozilla::a11y::ReorderEventData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    IPC::ReadResult<paramType> result__{
            std::in_place,
            ::uint64_t{0},
            ::uint32_t{0}};
    if ((!((aReader)->ReadBytesInto((&((result__)->ID())), 8)))) {
        aReader->FatalError("Error bulk reading fields from uint64_t");
        return {};
    }
    // Sentinel = 'ID'
    if ((!((aReader)->ReadSentinel(14155918)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint64_t");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->Type())), 4)))) {
        aReader->FatalError("Error bulk reading fields from uint32_t");
        return {};
    }
    // Sentinel = 'Type'
    if ((!((aReader)->ReadSentinel(67371427)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint32_t");
        return {};
    }
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct TextChangeEventData|
//
namespace mozilla {
namespace a11y {
auto TextChangeEventData::StaticAssertions() const -> void
{
    static_assert(
        (offsetof(TextChangeEventData, Len_) - offsetof(TextChangeEventData, Start_)) == 4,
        "Bad assumptions about field layout!");
}

} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::TextChangeEventData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).Str());
    // Sentinel = 'Str'
    (aWriter)->WriteSentinel(39190842);
    IPC::WriteParam(aWriter, (aVar).IsInsert());
    // Sentinel = 'IsInsert'
    (aWriter)->WriteSentinel(228852530);
    IPC::WriteParam(aWriter, (aVar).FromUser());
    // Sentinel = 'FromUser'
    (aWriter)->WriteSentinel(234488628);
    (aWriter)->WriteBytes((&((aVar).ID())), 8);
    // Sentinel = 'ID'
    (aWriter)->WriteSentinel(14155918);
    (aWriter)->WriteBytes((&((aVar).Start())), 8);
    // Sentinel = 'Start | Len'
    (aWriter)->WriteSentinel(403768298);
}

auto ParamTraits<::mozilla::a11y::TextChangeEventData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___Str = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___Str) {
        aReader->FatalError("Error deserializing 'Str' (nsString) member of 'TextChangeEventData'");
        return {};

    }
    auto& _Str = *maybe___Str;
    // Sentinel = 'Str'
    if ((!((aReader)->ReadSentinel(39190842)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'Str' (nsString) member of 'TextChangeEventData'");
        return {};
    }
    auto maybe___IsInsert = IPC::ReadParam<bool>(aReader);
    if (!maybe___IsInsert) {
        aReader->FatalError("Error deserializing 'IsInsert' (bool) member of 'TextChangeEventData'");
        return {};

    }
    auto& _IsInsert = *maybe___IsInsert;
    // Sentinel = 'IsInsert'
    if ((!((aReader)->ReadSentinel(228852530)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'IsInsert' (bool) member of 'TextChangeEventData'");
        return {};
    }
    auto maybe___FromUser = IPC::ReadParam<bool>(aReader);
    if (!maybe___FromUser) {
        aReader->FatalError("Error deserializing 'FromUser' (bool) member of 'TextChangeEventData'");
        return {};

    }
    auto& _FromUser = *maybe___FromUser;
    // Sentinel = 'FromUser'
    if ((!((aReader)->ReadSentinel(234488628)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'FromUser' (bool) member of 'TextChangeEventData'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            ::uint64_t{0},
            std::move(_Str),
            ::int32_t{0},
            ::uint32_t{0},
            std::move(_IsInsert),
            std::move(_FromUser)};
    if ((!((aReader)->ReadBytesInto((&((result__)->ID())), 8)))) {
        aReader->FatalError("Error bulk reading fields from uint64_t");
        return {};
    }
    // Sentinel = 'ID'
    if ((!((aReader)->ReadSentinel(14155918)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint64_t");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->Start())), 8)))) {
        aReader->FatalError("Error bulk reading fields from int32_t");
        return {};
    }
    // Sentinel = 'Start | Len'
    if ((!((aReader)->ReadSentinel(403768298)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from int32_t");
        return {};
    }
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |union MutationEventData|
//
namespace mozilla {
namespace a11y {
auto MutationEventData::MaybeDestroy() -> void
{
    if ((mType) == (T__None)) {
        return;
    }
    switch (mType) {
    case TCacheEventData:
        {
            (ptr_CacheEventData())->~CacheEventData__tdef();
            break;
        }
    case TShowEventData:
        {
            (ptr_ShowEventData())->~ShowEventData__tdef();
            break;
        }
    case THideEventData:
        {
            (ptr_HideEventData())->~HideEventData__tdef();
            break;
        }
    case TReorderEventData:
        {
            (ptr_ReorderEventData())->~ReorderEventData__tdef();
            break;
        }
    case TTextChangeEventData:
        {
            (ptr_TextChangeEventData())->~TextChangeEventData__tdef();
            break;
        }
    default:
        {
            mozilla::ipc::LogicError("not reached");
            break;
        }
    }
}

MOZ_IMPLICIT MutationEventData::MutationEventData(const CacheEventData& aOther)
{
    new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData(aOther);
    mType = TCacheEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(CacheEventData&& aOther)
{
    new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData(std::move(aOther));
    mType = TCacheEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(const ShowEventData& aOther)
{
    new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData(aOther);
    mType = TShowEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(ShowEventData&& aOther)
{
    new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData(std::move(aOther));
    mType = TShowEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(const HideEventData& aOther)
{
    new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData(aOther);
    mType = THideEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(HideEventData&& aOther)
{
    new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData(std::move(aOther));
    mType = THideEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(const ReorderEventData& aOther)
{
    new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData(aOther);
    mType = TReorderEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(ReorderEventData&& aOther)
{
    new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData(std::move(aOther));
    mType = TReorderEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(const TextChangeEventData& aOther)
{
    new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData(aOther);
    mType = TTextChangeEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(TextChangeEventData&& aOther)
{
    new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData(std::move(aOther));
    mType = TTextChangeEventData;
}

MOZ_IMPLICIT MutationEventData::MutationEventData(const MutationEventData& aOther)
{
    (aOther).AssertSanity();
    switch ((aOther).type()) {
    case TCacheEventData:
        {
            new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData((aOther).get_CacheEventData());
            break;
        }
    case TShowEventData:
        {
            new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData((aOther).get_ShowEventData());
            break;
        }
    case THideEventData:
        {
            new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData((aOther).get_HideEventData());
            break;
        }
    case TReorderEventData:
        {
            new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData((aOther).get_ReorderEventData());
            break;
        }
    case TTextChangeEventData:
        {
            new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData((aOther).get_TextChangeEventData());
            break;
        }
    case T__None:
        {
            break;
        }
    default:
        {
            mozilla::ipc::LogicError("unreached");
            return;
        }
    }
    mType = (aOther).type();
}

MOZ_IMPLICIT MutationEventData::MutationEventData(MutationEventData&& aOther)
{
    (aOther).AssertSanity();
    Type t = (aOther).type();
    switch (t) {
    case TCacheEventData:
        {
            new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData(std::move((aOther).get_CacheEventData()));
            (aOther).MaybeDestroy();
            break;
        }
    case TShowEventData:
        {
            new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData(std::move((aOther).get_ShowEventData()));
            (aOther).MaybeDestroy();
            break;
        }
    case THideEventData:
        {
            new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData(std::move((aOther).get_HideEventData()));
            (aOther).MaybeDestroy();
            break;
        }
    case TReorderEventData:
        {
            new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData(std::move((aOther).get_ReorderEventData()));
            (aOther).MaybeDestroy();
            break;
        }
    case TTextChangeEventData:
        {
            new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData(std::move((aOther).get_TextChangeEventData()));
            (aOther).MaybeDestroy();
            break;
        }
    case T__None:
        {
            break;
        }
    default:
        {
            mozilla::ipc::LogicError("unreached");
            return;
        }
    }
    (aOther).mType = T__None;
    mType = t;
}

MutationEventData::~MutationEventData()
{
    MaybeDestroy();
}

auto MutationEventData::operator=(const CacheEventData& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData(aRhs);
    mType = TCacheEventData;
    return (*(this));
}

auto MutationEventData::operator=(CacheEventData&& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData(std::move(aRhs));
    mType = TCacheEventData;
    return (*(this));
}

auto MutationEventData::operator=(const ShowEventData& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData(aRhs);
    mType = TShowEventData;
    return (*(this));
}

auto MutationEventData::operator=(ShowEventData&& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData(std::move(aRhs));
    mType = TShowEventData;
    return (*(this));
}

auto MutationEventData::operator=(const HideEventData& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData(aRhs);
    mType = THideEventData;
    return (*(this));
}

auto MutationEventData::operator=(HideEventData&& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData(std::move(aRhs));
    mType = THideEventData;
    return (*(this));
}

auto MutationEventData::operator=(const ReorderEventData& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData(aRhs);
    mType = TReorderEventData;
    return (*(this));
}

auto MutationEventData::operator=(ReorderEventData&& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData(std::move(aRhs));
    mType = TReorderEventData;
    return (*(this));
}

auto MutationEventData::operator=(const TextChangeEventData& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData(aRhs);
    mType = TTextChangeEventData;
    return (*(this));
}

auto MutationEventData::operator=(TextChangeEventData&& aRhs) -> MutationEventData&
{
    MaybeDestroy();
    new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData(std::move(aRhs));
    mType = TTextChangeEventData;
    return (*(this));
}

auto MutationEventData::operator=(const MutationEventData& aRhs) -> MutationEventData&
{
    (aRhs).AssertSanity();
    Type t = (aRhs).type();
    switch (t) {
    case TCacheEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData((aRhs).get_CacheEventData());
            break;
        }
    case TShowEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData((aRhs).get_ShowEventData());
            break;
        }
    case THideEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData((aRhs).get_HideEventData());
            break;
        }
    case TReorderEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData((aRhs).get_ReorderEventData());
            break;
        }
    case TTextChangeEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData((aRhs).get_TextChangeEventData());
            break;
        }
    case T__None:
        {
            MaybeDestroy();
            break;
        }
    default:
        {
            mozilla::ipc::LogicError("unreached");
            break;
        }
    }
    mType = t;
    return (*(this));
}

auto MutationEventData::operator=(MutationEventData&& aRhs) -> MutationEventData&
{
    (aRhs).AssertSanity();
    Type t = (aRhs).type();
    switch (t) {
    case TCacheEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_CacheEventData()) CacheEventData(std::move((aRhs).get_CacheEventData()));
            (aRhs).MaybeDestroy();
            break;
        }
    case TShowEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_ShowEventData()) ShowEventData(std::move((aRhs).get_ShowEventData()));
            (aRhs).MaybeDestroy();
            break;
        }
    case THideEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_HideEventData()) HideEventData(std::move((aRhs).get_HideEventData()));
            (aRhs).MaybeDestroy();
            break;
        }
    case TReorderEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_ReorderEventData()) ReorderEventData(std::move((aRhs).get_ReorderEventData()));
            (aRhs).MaybeDestroy();
            break;
        }
    case TTextChangeEventData:
        {
            MaybeDestroy();
            new (mozilla::KnownNotNull, ptr_TextChangeEventData()) TextChangeEventData(std::move((aRhs).get_TextChangeEventData()));
            (aRhs).MaybeDestroy();
            break;
        }
    case T__None:
        {
            MaybeDestroy();
            break;
        }
    default:
        {
            mozilla::ipc::LogicError("unreached");
            break;
        }
    }
    (aRhs).mType = T__None;
    mType = t;
    return (*(this));
}

} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::MutationEventData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    typedef ::mozilla::a11y::MutationEventData union__;
    int type = (aVar).type();
    IPC::WriteParam(aWriter, type);
    // Sentinel = 'MutationEventData'
    (aWriter)->WriteSentinel(1034749646);

    switch (type) {
    case union__::TCacheEventData:
        {
            IPC::WriteParam(aWriter, (aVar).get_CacheEventData());
            // Sentinel = 'TCacheEventData'
            (aWriter)->WriteSentinel(735315365);
            return;
        }
    case union__::TShowEventData:
        {
            IPC::WriteParam(aWriter, (aVar).get_ShowEventData());
            // Sentinel = 'TShowEventData'
            (aWriter)->WriteSentinel(677119346);
            return;
        }
    case union__::THideEventData:
        {
            IPC::WriteParam(aWriter, (aVar).get_HideEventData());
            // Sentinel = 'THideEventData'
            (aWriter)->WriteSentinel(648807755);
            return;
        }
    case union__::TReorderEventData:
        {
            IPC::WriteParam(aWriter, (aVar).get_ReorderEventData());
            // Sentinel = 'TReorderEventData'
            (aWriter)->WriteSentinel(993724068);
            return;
        }
    case union__::TTextChangeEventData:
        {
            IPC::WriteParam(aWriter, (aVar).get_TextChangeEventData());
            // Sentinel = 'TTextChangeEventData'
            (aWriter)->WriteSentinel(1349978044);
            return;
        }
    default:
        {
            aWriter->FatalError("unknown variant of union MutationEventData");
            return;
        }
    }
}

auto ParamTraits<::mozilla::a11y::MutationEventData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    typedef ::mozilla::a11y::MutationEventData union__;
    auto maybe__type = IPC::ReadParam<int>(aReader);
    if (!maybe__type) {
        aReader->FatalError("Error deserializing type of union MutationEventData");
        return {};

    }
    auto& type = *maybe__type;
    // Sentinel = 'MutationEventData'
    if ((!((aReader)->ReadSentinel(1034749646)))) {
        mozilla::ipc::SentinelReadError("Error deserializing type of union MutationEventData");
        return {};
    }

    switch (type) {
    case union__::TCacheEventData:
        {
            auto maybe__tmp = IPC::ReadParam<::mozilla::a11y::CacheEventData>(aReader);
            if (!maybe__tmp) {
                aReader->FatalError("Error deserializing variant TCacheEventData of union MutationEventData");
                return {};

            }
            auto& tmp = *maybe__tmp;
            // Sentinel = 'TCacheEventData'
            if ((!((aReader)->ReadSentinel(735315365)))) {
                mozilla::ipc::SentinelReadError("Error deserializing variant TCacheEventData of union MutationEventData");
                return {};
            }
            return std::move(tmp);
        }
    case union__::TShowEventData:
        {
            auto maybe__tmp = IPC::ReadParam<::mozilla::a11y::ShowEventData>(aReader);
            if (!maybe__tmp) {
                aReader->FatalError("Error deserializing variant TShowEventData of union MutationEventData");
                return {};

            }
            auto& tmp = *maybe__tmp;
            // Sentinel = 'TShowEventData'
            if ((!((aReader)->ReadSentinel(677119346)))) {
                mozilla::ipc::SentinelReadError("Error deserializing variant TShowEventData of union MutationEventData");
                return {};
            }
            return std::move(tmp);
        }
    case union__::THideEventData:
        {
            auto maybe__tmp = IPC::ReadParam<::mozilla::a11y::HideEventData>(aReader);
            if (!maybe__tmp) {
                aReader->FatalError("Error deserializing variant THideEventData of union MutationEventData");
                return {};

            }
            auto& tmp = *maybe__tmp;
            // Sentinel = 'THideEventData'
            if ((!((aReader)->ReadSentinel(648807755)))) {
                mozilla::ipc::SentinelReadError("Error deserializing variant THideEventData of union MutationEventData");
                return {};
            }
            return std::move(tmp);
        }
    case union__::TReorderEventData:
        {
            auto maybe__tmp = IPC::ReadParam<::mozilla::a11y::ReorderEventData>(aReader);
            if (!maybe__tmp) {
                aReader->FatalError("Error deserializing variant TReorderEventData of union MutationEventData");
                return {};

            }
            auto& tmp = *maybe__tmp;
            // Sentinel = 'TReorderEventData'
            if ((!((aReader)->ReadSentinel(993724068)))) {
                mozilla::ipc::SentinelReadError("Error deserializing variant TReorderEventData of union MutationEventData");
                return {};
            }
            return std::move(tmp);
        }
    case union__::TTextChangeEventData:
        {
            auto maybe__tmp = IPC::ReadParam<::mozilla::a11y::TextChangeEventData>(aReader);
            if (!maybe__tmp) {
                aReader->FatalError("Error deserializing variant TTextChangeEventData of union MutationEventData");
                return {};

            }
            auto& tmp = *maybe__tmp;
            // Sentinel = 'TTextChangeEventData'
            if ((!((aReader)->ReadSentinel(1349978044)))) {
                mozilla::ipc::SentinelReadError("Error deserializing variant TTextChangeEventData of union MutationEventData");
                return {};
            }
            return std::move(tmp);
        }
    default:
        {
            aReader->FatalError("unknown variant of union MutationEventData");
            return {};
        }
    }
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct TextRangeData|
//
namespace mozilla {
namespace a11y {
auto TextRangeData::StaticAssertions() const -> void
{
    static_assert(
        (offsetof(TextRangeData, EndID_) - offsetof(TextRangeData, StartID_)) == 8,
        "Bad assumptions about field layout!");
    static_assert(
        (offsetof(TextRangeData, EndOffset_) - offsetof(TextRangeData, StartOffset_)) == 4,
        "Bad assumptions about field layout!");
}

} // namespace a11y
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::a11y::TextRangeData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    (aWriter)->WriteBytes((&((aVar).StartID())), 16);
    // Sentinel = 'StartID | EndID'
    (aWriter)->WriteSentinel(704251132);
    (aWriter)->WriteBytes((&((aVar).StartOffset())), 8);
    // Sentinel = 'StartOffset | EndOffset'
    (aWriter)->WriteSentinel(1754007728);
}

auto ParamTraits<::mozilla::a11y::TextRangeData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    IPC::ReadResult<paramType> result__{
            std::in_place,
            ::uint64_t{0},
            ::uint64_t{0},
            ::int32_t{0},
            ::int32_t{0}};
    if ((!((aReader)->ReadBytesInto((&((result__)->StartID())), 16)))) {
        aReader->FatalError("Error bulk reading fields from uint64_t");
        return {};
    }
    // Sentinel = 'StartID | EndID'
    if ((!((aReader)->ReadSentinel(704251132)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint64_t");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->StartOffset())), 8)))) {
        aReader->FatalError("Error bulk reading fields from int32_t");
        return {};
    }
    // Sentinel = 'StartOffset | EndOffset'
    if ((!((aReader)->ReadSentinel(1754007728)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from int32_t");
        return {};
    }
    return result__;
}

} // namespace IPC
