/*
 * 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
