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


#include "mozilla/layout/PRemotePrintJobParent.h"
#include "mozilla/layout/PRemotePrintJobChild.h"
#include "mozilla/embedding/PPrintingTypes.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"


//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct CStringKeyValue|
//
namespace mozilla {
namespace embedding {
} // namespace embedding
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::embedding::CStringKeyValue>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).key());
    // Sentinel = 'key'
    (aWriter)->WriteSentinel(42402122);
    IPC::WriteParam(aWriter, (aVar).value());
    // Sentinel = 'value'
    (aWriter)->WriteSentinel(107610654);
}

auto ParamTraits<::mozilla::embedding::CStringKeyValue>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___key = IPC::ReadParam<::nsCString>(aReader);
    if (!maybe___key) {
        aReader->FatalError("Error deserializing 'key' (nsCString) member of 'CStringKeyValue'");
        return {};

    }
    auto& _key = *maybe___key;
    // Sentinel = 'key'
    if ((!((aReader)->ReadSentinel(42402122)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'key' (nsCString) member of 'CStringKeyValue'");
        return {};
    }
    auto maybe___value = IPC::ReadParam<::nsCString>(aReader);
    if (!maybe___value) {
        aReader->FatalError("Error deserializing 'value' (nsCString) member of 'CStringKeyValue'");
        return {};

    }
    auto& _value = *maybe___value;
    // Sentinel = 'value'
    if ((!((aReader)->ReadSentinel(107610654)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'value' (nsCString) member of 'CStringKeyValue'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_key),
            std::move(_value)};
    return result__;
}

} // namespace IPC

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct PrintData|
//
namespace mozilla {
namespace embedding {
auto PrintData::StaticAssertions() const -> void
{
    static_assert(
        (offsetof(PrintData, paperHeight_) - offsetof(PrintData, edgeTop_)) == 112,
        "Bad assumptions about field layout!");
    static_assert(
        (offsetof(PrintData, duplex_) - offsetof(PrintData, orientation_)) == 20,
        "Bad assumptions about field layout!");
}

} // namespace embedding
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::embedding::PrintData>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).remotePrintJob());
    // Sentinel = 'remotePrintJob'
    (aWriter)->WriteSentinel(730400181);
    IPC::WriteParam(aWriter, (aVar).printBGColors());
    // Sentinel = 'printBGColors'
    (aWriter)->WriteSentinel(604636457);
    IPC::WriteParam(aWriter, (aVar).printBGImages());
    // Sentinel = 'printBGImages'
    (aWriter)->WriteSentinel(600179981);
    IPC::WriteParam(aWriter, (aVar).honorPageRuleMargins());
    // Sentinel = 'honorPageRuleMargins'
    (aWriter)->WriteSentinel(1416497165);
    IPC::WriteParam(aWriter, (aVar).usePageRuleSizeAsPaperSize());
    // Sentinel = 'usePageRuleSizeAsPaperSize'
    (aWriter)->WriteSentinel(2324302405);
    IPC::WriteParam(aWriter, (aVar).ignoreUnwriteableMargins());
    // Sentinel = 'ignoreUnwriteableMargins'
    (aWriter)->WriteSentinel(2074020312);
    IPC::WriteParam(aWriter, (aVar).showMarginGuides());
    // Sentinel = 'showMarginGuides'
    (aWriter)->WriteSentinel(932775553);
    IPC::WriteParam(aWriter, (aVar).printSelectionOnly());
    // Sentinel = 'printSelectionOnly'
    (aWriter)->WriteSentinel(1190659958);
    IPC::WriteParam(aWriter, (aVar).pageRanges());
    // Sentinel = 'pageRanges'
    (aWriter)->WriteSentinel(365495294);
    IPC::WriteParam(aWriter, (aVar).title());
    // Sentinel = 'title'
    (aWriter)->WriteSentinel(109445667);
    IPC::WriteParam(aWriter, (aVar).docURL());
    // Sentinel = 'docURL'
    (aWriter)->WriteSentinel(134480426);
    IPC::WriteParam(aWriter, (aVar).headerStrLeft());
    // Sentinel = 'headerStrLeft'
    (aWriter)->WriteSentinel(605488430);
    IPC::WriteParam(aWriter, (aVar).headerStrCenter());
    // Sentinel = 'headerStrCenter'
    (aWriter)->WriteSentinel(798557700);
    IPC::WriteParam(aWriter, (aVar).headerStrRight());
    // Sentinel = 'headerStrRight'
    (aWriter)->WriteSentinel(701629857);
    IPC::WriteParam(aWriter, (aVar).footerStrLeft());
    // Sentinel = 'footerStrLeft'
    (aWriter)->WriteSentinel(632227156);
    IPC::WriteParam(aWriter, (aVar).footerStrCenter());
    // Sentinel = 'footerStrCenter'
    (aWriter)->WriteSentinel(830277162);
    IPC::WriteParam(aWriter, (aVar).footerStrRight());
    // Sentinel = 'footerStrRight'
    (aWriter)->WriteSentinel(730858951);
    IPC::WriteParam(aWriter, (aVar).printSilent());
    // Sentinel = 'printSilent'
    (aWriter)->WriteSentinel(466224285);
    IPC::WriteParam(aWriter, (aVar).shrinkToFit());
    // Sentinel = 'shrinkToFit'
    (aWriter)->WriteSentinel(458359926);
    IPC::WriteParam(aWriter, (aVar).paperId());
    // Sentinel = 'paperId'
    (aWriter)->WriteSentinel(191693510);
    IPC::WriteParam(aWriter, (aVar).paperSizeUnit());
    // Sentinel = 'paperSizeUnit'
    (aWriter)->WriteSentinel(624756052);
    IPC::WriteParam(aWriter, (aVar).printReversed());
    // Sentinel = 'printReversed'
    (aWriter)->WriteSentinel(643237230);
    IPC::WriteParam(aWriter, (aVar).printInColor());
    // Sentinel = 'printInColor'
    (aWriter)->WriteSentinel(536610020);
    IPC::WriteParam(aWriter, (aVar).outputDestination());
    // Sentinel = 'outputDestination'
    (aWriter)->WriteSentinel(1095042868);
    IPC::WriteParam(aWriter, (aVar).outputFormat());
    // Sentinel = 'outputFormat'
    (aWriter)->WriteSentinel(564593947);
    IPC::WriteParam(aWriter, (aVar).isInitializedFromPrinter());
    // Sentinel = 'isInitializedFromPrinter'
    (aWriter)->WriteSentinel(2039876043);
    IPC::WriteParam(aWriter, (aVar).isInitializedFromPrefs());
    // Sentinel = 'isInitializedFromPrefs'
    (aWriter)->WriteSentinel(1716848871);
    IPC::WriteParam(aWriter, (aVar).driverName());
    // Sentinel = 'driverName'
    (aWriter)->WriteSentinel(380109838);
    IPC::WriteParam(aWriter, (aVar).deviceName());
    // Sentinel = 'deviceName'
    (aWriter)->WriteSentinel(368247794);
    IPC::WriteParam(aWriter, (aVar).devModeData());
    // Sentinel = 'devModeData'
    (aWriter)->WriteSentinel(430769215);
    IPC::WriteParam(aWriter, (aVar).GTKPrintSettings());
    // Sentinel = 'GTKPrintSettings'
    (aWriter)->WriteSentinel(844564037);
    IPC::WriteParam(aWriter, (aVar).disposition());
    // Sentinel = 'disposition'
    (aWriter)->WriteSentinel(471532726);
    (aWriter)->WriteBytes((&((aVar).edgeTop())), 120);
    // Sentinel = 'edgeTop | edgeLeft | edgeBottom | edgeRight | marginTop | marginLeft | marginBottom | marginRight | unwriteableMarginTop | unwriteableMarginLeft | unwriteableMarginBottom | unwriteableMarginRight | scaling | paperWidth | paperHeight'
    (aWriter)->WriteSentinel(1971083154);
    (aWriter)->WriteBytes((&((aVar).orientation())), 24);
    // Sentinel = 'orientation | numCopies | numPagesPerSheet | printPageDelay | resolution | duplex'
    (aWriter)->WriteSentinel(4137688811);
    (aWriter)->WriteBytes((&((aVar).destination())), 2);
    // Sentinel = 'destination'
    (aWriter)->WriteSentinel(463668387);
}

auto ParamTraits<::mozilla::embedding::PrintData>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___remotePrintJob = IPC::ReadParam<::mozilla::ipc::SideVariant<::mozilla::layout::PRemotePrintJobParent*, ::mozilla::layout::PRemotePrintJobChild*>>(aReader);
    if (!maybe___remotePrintJob) {
        aReader->FatalError("Error deserializing 'remotePrintJob' (PRemotePrintJob) member of 'PrintData'");
        return {};

    }
    auto& _remotePrintJob = *maybe___remotePrintJob;
    // Sentinel = 'remotePrintJob'
    if ((!((aReader)->ReadSentinel(730400181)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'remotePrintJob' (PRemotePrintJob) member of 'PrintData'");
        return {};
    }
    auto maybe___printBGColors = IPC::ReadParam<bool>(aReader);
    if (!maybe___printBGColors) {
        aReader->FatalError("Error deserializing 'printBGColors' (bool) member of 'PrintData'");
        return {};

    }
    auto& _printBGColors = *maybe___printBGColors;
    // Sentinel = 'printBGColors'
    if ((!((aReader)->ReadSentinel(604636457)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'printBGColors' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___printBGImages = IPC::ReadParam<bool>(aReader);
    if (!maybe___printBGImages) {
        aReader->FatalError("Error deserializing 'printBGImages' (bool) member of 'PrintData'");
        return {};

    }
    auto& _printBGImages = *maybe___printBGImages;
    // Sentinel = 'printBGImages'
    if ((!((aReader)->ReadSentinel(600179981)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'printBGImages' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___honorPageRuleMargins = IPC::ReadParam<bool>(aReader);
    if (!maybe___honorPageRuleMargins) {
        aReader->FatalError("Error deserializing 'honorPageRuleMargins' (bool) member of 'PrintData'");
        return {};

    }
    auto& _honorPageRuleMargins = *maybe___honorPageRuleMargins;
    // Sentinel = 'honorPageRuleMargins'
    if ((!((aReader)->ReadSentinel(1416497165)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'honorPageRuleMargins' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___usePageRuleSizeAsPaperSize = IPC::ReadParam<bool>(aReader);
    if (!maybe___usePageRuleSizeAsPaperSize) {
        aReader->FatalError("Error deserializing 'usePageRuleSizeAsPaperSize' (bool) member of 'PrintData'");
        return {};

    }
    auto& _usePageRuleSizeAsPaperSize = *maybe___usePageRuleSizeAsPaperSize;
    // Sentinel = 'usePageRuleSizeAsPaperSize'
    if ((!((aReader)->ReadSentinel(2324302405)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'usePageRuleSizeAsPaperSize' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___ignoreUnwriteableMargins = IPC::ReadParam<bool>(aReader);
    if (!maybe___ignoreUnwriteableMargins) {
        aReader->FatalError("Error deserializing 'ignoreUnwriteableMargins' (bool) member of 'PrintData'");
        return {};

    }
    auto& _ignoreUnwriteableMargins = *maybe___ignoreUnwriteableMargins;
    // Sentinel = 'ignoreUnwriteableMargins'
    if ((!((aReader)->ReadSentinel(2074020312)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'ignoreUnwriteableMargins' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___showMarginGuides = IPC::ReadParam<bool>(aReader);
    if (!maybe___showMarginGuides) {
        aReader->FatalError("Error deserializing 'showMarginGuides' (bool) member of 'PrintData'");
        return {};

    }
    auto& _showMarginGuides = *maybe___showMarginGuides;
    // Sentinel = 'showMarginGuides'
    if ((!((aReader)->ReadSentinel(932775553)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'showMarginGuides' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___printSelectionOnly = IPC::ReadParam<bool>(aReader);
    if (!maybe___printSelectionOnly) {
        aReader->FatalError("Error deserializing 'printSelectionOnly' (bool) member of 'PrintData'");
        return {};

    }
    auto& _printSelectionOnly = *maybe___printSelectionOnly;
    // Sentinel = 'printSelectionOnly'
    if ((!((aReader)->ReadSentinel(1190659958)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'printSelectionOnly' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___pageRanges = IPC::ReadParam<nsTArray<::int32_t>>(aReader);
    if (!maybe___pageRanges) {
        aReader->FatalError("Error deserializing 'pageRanges' (int32_t[]) member of 'PrintData'");
        return {};

    }
    auto& _pageRanges = *maybe___pageRanges;
    // Sentinel = 'pageRanges'
    if ((!((aReader)->ReadSentinel(365495294)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'pageRanges' (int32_t[]) member of 'PrintData'");
        return {};
    }
    auto maybe___title = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___title) {
        aReader->FatalError("Error deserializing 'title' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _title = *maybe___title;
    // Sentinel = 'title'
    if ((!((aReader)->ReadSentinel(109445667)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'title' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___docURL = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___docURL) {
        aReader->FatalError("Error deserializing 'docURL' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _docURL = *maybe___docURL;
    // Sentinel = 'docURL'
    if ((!((aReader)->ReadSentinel(134480426)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'docURL' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___headerStrLeft = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___headerStrLeft) {
        aReader->FatalError("Error deserializing 'headerStrLeft' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _headerStrLeft = *maybe___headerStrLeft;
    // Sentinel = 'headerStrLeft'
    if ((!((aReader)->ReadSentinel(605488430)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'headerStrLeft' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___headerStrCenter = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___headerStrCenter) {
        aReader->FatalError("Error deserializing 'headerStrCenter' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _headerStrCenter = *maybe___headerStrCenter;
    // Sentinel = 'headerStrCenter'
    if ((!((aReader)->ReadSentinel(798557700)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'headerStrCenter' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___headerStrRight = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___headerStrRight) {
        aReader->FatalError("Error deserializing 'headerStrRight' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _headerStrRight = *maybe___headerStrRight;
    // Sentinel = 'headerStrRight'
    if ((!((aReader)->ReadSentinel(701629857)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'headerStrRight' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___footerStrLeft = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___footerStrLeft) {
        aReader->FatalError("Error deserializing 'footerStrLeft' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _footerStrLeft = *maybe___footerStrLeft;
    // Sentinel = 'footerStrLeft'
    if ((!((aReader)->ReadSentinel(632227156)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'footerStrLeft' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___footerStrCenter = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___footerStrCenter) {
        aReader->FatalError("Error deserializing 'footerStrCenter' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _footerStrCenter = *maybe___footerStrCenter;
    // Sentinel = 'footerStrCenter'
    if ((!((aReader)->ReadSentinel(830277162)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'footerStrCenter' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___footerStrRight = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___footerStrRight) {
        aReader->FatalError("Error deserializing 'footerStrRight' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _footerStrRight = *maybe___footerStrRight;
    // Sentinel = 'footerStrRight'
    if ((!((aReader)->ReadSentinel(730858951)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'footerStrRight' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___printSilent = IPC::ReadParam<bool>(aReader);
    if (!maybe___printSilent) {
        aReader->FatalError("Error deserializing 'printSilent' (bool) member of 'PrintData'");
        return {};

    }
    auto& _printSilent = *maybe___printSilent;
    // Sentinel = 'printSilent'
    if ((!((aReader)->ReadSentinel(466224285)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'printSilent' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___shrinkToFit = IPC::ReadParam<bool>(aReader);
    if (!maybe___shrinkToFit) {
        aReader->FatalError("Error deserializing 'shrinkToFit' (bool) member of 'PrintData'");
        return {};

    }
    auto& _shrinkToFit = *maybe___shrinkToFit;
    // Sentinel = 'shrinkToFit'
    if ((!((aReader)->ReadSentinel(458359926)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'shrinkToFit' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___paperId = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___paperId) {
        aReader->FatalError("Error deserializing 'paperId' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _paperId = *maybe___paperId;
    // Sentinel = 'paperId'
    if ((!((aReader)->ReadSentinel(191693510)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'paperId' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___paperSizeUnit = IPC::ReadParam<short>(aReader);
    if (!maybe___paperSizeUnit) {
        aReader->FatalError("Error deserializing 'paperSizeUnit' (short) member of 'PrintData'");
        return {};

    }
    auto& _paperSizeUnit = *maybe___paperSizeUnit;
    // Sentinel = 'paperSizeUnit'
    if ((!((aReader)->ReadSentinel(624756052)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'paperSizeUnit' (short) member of 'PrintData'");
        return {};
    }
    auto maybe___printReversed = IPC::ReadParam<bool>(aReader);
    if (!maybe___printReversed) {
        aReader->FatalError("Error deserializing 'printReversed' (bool) member of 'PrintData'");
        return {};

    }
    auto& _printReversed = *maybe___printReversed;
    // Sentinel = 'printReversed'
    if ((!((aReader)->ReadSentinel(643237230)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'printReversed' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___printInColor = IPC::ReadParam<bool>(aReader);
    if (!maybe___printInColor) {
        aReader->FatalError("Error deserializing 'printInColor' (bool) member of 'PrintData'");
        return {};

    }
    auto& _printInColor = *maybe___printInColor;
    // Sentinel = 'printInColor'
    if ((!((aReader)->ReadSentinel(536610020)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'printInColor' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___outputDestination = IPC::ReadParam<short>(aReader);
    if (!maybe___outputDestination) {
        aReader->FatalError("Error deserializing 'outputDestination' (short) member of 'PrintData'");
        return {};

    }
    auto& _outputDestination = *maybe___outputDestination;
    // Sentinel = 'outputDestination'
    if ((!((aReader)->ReadSentinel(1095042868)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'outputDestination' (short) member of 'PrintData'");
        return {};
    }
    auto maybe___outputFormat = IPC::ReadParam<short>(aReader);
    if (!maybe___outputFormat) {
        aReader->FatalError("Error deserializing 'outputFormat' (short) member of 'PrintData'");
        return {};

    }
    auto& _outputFormat = *maybe___outputFormat;
    // Sentinel = 'outputFormat'
    if ((!((aReader)->ReadSentinel(564593947)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'outputFormat' (short) member of 'PrintData'");
        return {};
    }
    auto maybe___isInitializedFromPrinter = IPC::ReadParam<bool>(aReader);
    if (!maybe___isInitializedFromPrinter) {
        aReader->FatalError("Error deserializing 'isInitializedFromPrinter' (bool) member of 'PrintData'");
        return {};

    }
    auto& _isInitializedFromPrinter = *maybe___isInitializedFromPrinter;
    // Sentinel = 'isInitializedFromPrinter'
    if ((!((aReader)->ReadSentinel(2039876043)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'isInitializedFromPrinter' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___isInitializedFromPrefs = IPC::ReadParam<bool>(aReader);
    if (!maybe___isInitializedFromPrefs) {
        aReader->FatalError("Error deserializing 'isInitializedFromPrefs' (bool) member of 'PrintData'");
        return {};

    }
    auto& _isInitializedFromPrefs = *maybe___isInitializedFromPrefs;
    // Sentinel = 'isInitializedFromPrefs'
    if ((!((aReader)->ReadSentinel(1716848871)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'isInitializedFromPrefs' (bool) member of 'PrintData'");
        return {};
    }
    auto maybe___driverName = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___driverName) {
        aReader->FatalError("Error deserializing 'driverName' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _driverName = *maybe___driverName;
    // Sentinel = 'driverName'
    if ((!((aReader)->ReadSentinel(380109838)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'driverName' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___deviceName = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___deviceName) {
        aReader->FatalError("Error deserializing 'deviceName' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _deviceName = *maybe___deviceName;
    // Sentinel = 'deviceName'
    if ((!((aReader)->ReadSentinel(368247794)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'deviceName' (nsString) member of 'PrintData'");
        return {};
    }
    auto maybe___devModeData = IPC::ReadParam<nsTArray<::uint8_t>>(aReader);
    if (!maybe___devModeData) {
        aReader->FatalError("Error deserializing 'devModeData' (uint8_t[]) member of 'PrintData'");
        return {};

    }
    auto& _devModeData = *maybe___devModeData;
    // Sentinel = 'devModeData'
    if ((!((aReader)->ReadSentinel(430769215)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'devModeData' (uint8_t[]) member of 'PrintData'");
        return {};
    }
    auto maybe___GTKPrintSettings = IPC::ReadParam<nsTArray<::mozilla::embedding::CStringKeyValue>>(aReader);
    if (!maybe___GTKPrintSettings) {
        aReader->FatalError("Error deserializing 'GTKPrintSettings' (CStringKeyValue[]) member of 'PrintData'");
        return {};

    }
    auto& _GTKPrintSettings = *maybe___GTKPrintSettings;
    // Sentinel = 'GTKPrintSettings'
    if ((!((aReader)->ReadSentinel(844564037)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'GTKPrintSettings' (CStringKeyValue[]) member of 'PrintData'");
        return {};
    }
    auto maybe___disposition = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___disposition) {
        aReader->FatalError("Error deserializing 'disposition' (nsString) member of 'PrintData'");
        return {};

    }
    auto& _disposition = *maybe___disposition;
    // Sentinel = 'disposition'
    if ((!((aReader)->ReadSentinel(471532726)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'disposition' (nsString) member of 'PrintData'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            _remotePrintJob,
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            double{0},
            std::move(_printBGColors),
            std::move(_printBGImages),
            std::move(_honorPageRuleMargins),
            std::move(_usePageRuleSizeAsPaperSize),
            std::move(_ignoreUnwriteableMargins),
            std::move(_showMarginGuides),
            std::move(_printSelectionOnly),
            std::move(_pageRanges),
            std::move(_title),
            std::move(_docURL),
            std::move(_headerStrLeft),
            std::move(_headerStrCenter),
            std::move(_headerStrRight),
            std::move(_footerStrLeft),
            std::move(_footerStrCenter),
            std::move(_footerStrRight),
            std::move(_printSilent),
            std::move(_shrinkToFit),
            std::move(_paperId),
            double{0},
            double{0},
            std::move(_paperSizeUnit),
            std::move(_printReversed),
            std::move(_printInColor),
            ::int32_t{0},
            ::int32_t{0},
            ::int32_t{0},
            std::move(_outputDestination),
            std::move(_outputFormat),
            ::int32_t{0},
            ::int32_t{0},
            ::int32_t{0},
            std::move(_isInitializedFromPrinter),
            std::move(_isInitializedFromPrefs),
            std::move(_driverName),
            std::move(_deviceName),
            std::move(_devModeData),
            std::move(_GTKPrintSettings),
            std::move(_disposition),
            ::uint16_t{0}};
    if ((!((aReader)->ReadBytesInto((&((result__)->edgeTop())), 120)))) {
        aReader->FatalError("Error bulk reading fields from double");
        return {};
    }
    // Sentinel = 'edgeTop | edgeLeft | edgeBottom | edgeRight | marginTop | marginLeft | marginBottom | marginRight | unwriteableMarginTop | unwriteableMarginLeft | unwriteableMarginBottom | unwriteableMarginRight | scaling | paperWidth | paperHeight'
    if ((!((aReader)->ReadSentinel(1971083154)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from double");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->orientation())), 24)))) {
        aReader->FatalError("Error bulk reading fields from int32_t");
        return {};
    }
    // Sentinel = 'orientation | numCopies | numPagesPerSheet | printPageDelay | resolution | duplex'
    if ((!((aReader)->ReadSentinel(4137688811)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from int32_t");
        return {};
    }
    if ((!((aReader)->ReadBytesInto((&((result__)->destination())), 2)))) {
        aReader->FatalError("Error bulk reading fields from uint16_t");
        return {};
    }
    // Sentinel = 'destination'
    if ((!((aReader)->ReadSentinel(463668387)))) {
        mozilla::ipc::SentinelReadError("Error bulk reading fields from uint16_t");
        return {};
    }
    return result__;
}

} // namespace IPC
