chromium/third_party/pdfium/core/fpdfapi/parser/cpdf_array.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 CORE_FPDFAPI_PARSER_CPDF_ARRAY_H_
#define CORE_FPDFAPI_PARSER_CPDF_ARRAY_H_

#include <stddef.h>

#include <optional>
#include <set>
#include <type_traits>
#include <utility>
#include <vector>

#include "core/fpdfapi/parser/cpdf_indirect_object_holder.h"
#include "core/fpdfapi/parser/cpdf_object.h"
#include "core/fxcrt/check.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/retain_ptr.h"

// Arrays never contain nullptrs for objects within bounds, but some of the
// methods will tolerate out-of-bounds indices and return nullptr for those
// cases.
class CPDF_Array final : public CPDF_Object {};

class CPDF_ArrayLocker {};

inline CPDF_Array* ToArray(CPDF_Object* obj) {}

inline const CPDF_Array* ToArray(const CPDF_Object* obj) {}

inline RetainPtr<CPDF_Array> ToArray(RetainPtr<CPDF_Object> obj) {}

inline RetainPtr<const CPDF_Array> ToArray(RetainPtr<const CPDF_Object> obj) {}

#endif  // CORE_FPDFAPI_PARSER_CPDF_ARRAY_H_