/*
 * Copyright 2022 Rive
 */

#ifndef _RIVE_COUNTER_HPP_
#define _RIVE_COUNTER_HPP_

#include "rive/rive_types.hpp"

namespace rive {

    struct Counter {
        enum Type {
            kFile,
            kArtboardInstance,
            kLinearAnimationInstance,
            kStateMachineInstance,

            kBuffer,
            kPath,
            kPaint,
            kShader,
            kImage,

            kLastType = kImage,
        };

        static constexpr int kNumTypes = Type::kLastType + 1;
        static int counts[kNumTypes];

        static void update(Type ct, int delta) {
            assert(delta == 1 || delta == -1);
            counts[ct] += delta;
            assert(counts[ct] >= 0);
        }
    };

} // namespace rive

#endif
