// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
// This file is autogenerated by vtkCreateArrayDispatchImplicitList.cmake.
// Do not edit this file. Your changes will not be saved.

#ifndef vtkArrayDispatchArrayList_h
#define vtkArrayDispatchArrayList_h

#include "vtkTypeList.h"
#include "vtkAOSDataArrayTemplate.h"

namespace vtkArrayDispatch {
VTK_ABI_NAMESPACE_BEGIN

using AOSArrays = vtkTypeList::Unique<vtkTypeList::Create<
    vtkAOSDataArrayTemplate<char>,
    vtkAOSDataArrayTemplate<double>,
    vtkAOSDataArrayTemplate<float>,
    vtkAOSDataArrayTemplate<int>,
    vtkAOSDataArrayTemplate<long>,
    vtkAOSDataArrayTemplate<long long>,
    vtkAOSDataArrayTemplate<short>,
    vtkAOSDataArrayTemplate<signed char>,
    vtkAOSDataArrayTemplate<unsigned char>,
    vtkAOSDataArrayTemplate<unsigned int>,
    vtkAOSDataArrayTemplate<unsigned long>,
    vtkAOSDataArrayTemplate<unsigned long long>,
    vtkAOSDataArrayTemplate<unsigned short>,
    vtkAOSDataArrayTemplate<vtkIdType>
>>::Result;

using SOAArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using ScaledSOAArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using ExtraArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using Arrays = vtkTypeList::Append<
  AOSArrays,
  SOAArrays,
  ScaledSOAArrays,
  ExtraArrays
>::Result;

using AffineArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using ConstantArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using StdFunctionArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using StridedArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using StructuredPointArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using ImplicitExtraArrays = vtkTypeList::Unique<vtkTypeList::Create<
>>::Result;

using ReadOnlyArrays = vtkTypeList::Append<
  AffineArrays,
  ConstantArrays,
  StdFunctionArrays,
  StridedArrays,
  StructuredPointArrays,
  ImplicitExtraArrays
>::Result;

using AllArrays = vtkTypeList::Append<Arrays, ReadOnlyArrays>::Result;

VTK_ABI_NAMESPACE_END

} // end namespace vtkArrayDispatch
#endif // vtkArrayDispatchArrayList_h

