//* Copyright 2020 The Dawn Authors
//*
//* Licensed under the Apache License, Version 2.0 (the "License");
//* you may not use this file except in compliance with the License.
//* You may obtain a copy of the License at
//*
//*     http://www.apache.org/licenses/LICENSE-2.0
//*
//* Unless required by applicable law or agreed to in writing, software
//* distributed under the License is distributed on an "AS IS" BASIS,
//* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//* See the License for the specific language governing permissions and
//* limitations under the License.

#ifndef DAWNWIRE_OBJECTTPYE_AUTOGEN_H_
#define DAWNWIRE_OBJECTTPYE_AUTOGEN_H_

#include "dawn/common/ityp_array.h"

namespace dawn::wire {

    enum class ObjectType : uint32_t {
        {% for type in by_category["object"] %}
            {{type.name.CamelCase()}},
        {% endfor %}
    };

    template <typename T>
    using PerObjectType = ityp::array<ObjectType, T, {{len(by_category["object"])}}>;

} // namespace dawn::wire


#endif  // DAWNWIRE_OBJECTTPYE_AUTOGEN_H_
