chromium/third_party/pdfium/xfa/fxfa/parser/xfa_basic_data.h

// Copyright 2016 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef XFA_FXFA_PARSER_XFA_BASIC_DATA_H_
#define XFA_FXFA_PARSER_XFA_BASIC_DATA_H_

#include <stddef.h>

#include <optional>

#include "core/fxcrt/widestring.h"
#include "fxjs/xfa/cjx_object.h"
#include "xfa/fxfa/fxfa_basic.h"

XFA_ATTRIBUTE_CALLBACK;

enum class XFA_PacketMatch : uint8_t {};

enum class XFA_PacketSupport : uint8_t {};

struct XFA_PACKETINFO {};

struct XFA_ATTRIBUTEINFO {};

struct XFA_SCRIPTATTRIBUTEINFO {};

XFA_PACKETINFO XFA_GetPacketByIndex(XFA_PacketType ePacket);
std::optional<XFA_PACKETINFO> XFA_GetPacketByName(WideStringView wsName);

ByteStringView XFA_ElementToName(XFA_Element elem);
XFA_Element XFA_GetElementByName(WideStringView name);

ByteStringView XFA_AttributeToName(XFA_Attribute attr);
std::optional<XFA_ATTRIBUTEINFO> XFA_GetAttributeByName(WideStringView name);

ByteStringView XFA_AttributeValueToName(XFA_AttributeValue item);
std::optional<XFA_AttributeValue> XFA_GetAttributeValueByName(
    WideStringView name);

std::optional<XFA_SCRIPTATTRIBUTEINFO> XFA_GetScriptAttributeByName(
    XFA_Element eElement,
    WideStringView wsAttributeName);

#endif  // XFA_FXFA_PARSER_XFA_BASIC_DATA_H_