// <auto-generated />
#nullable enable

namespace GFramework.Game.Config.Generated;

/// <summary>
///     Auto-generated table wrapper for schema file 'monster.schema.json'.
///     The wrapper keeps generated call sites strongly typed while delegating actual storage to the runtime config table implementation.
/// </summary>
public sealed partial class MonsterTable : global::GFramework.Game.Abstractions.Config.IConfigTable<int, MonsterConfig>
{
    private readonly global::GFramework.Game.Abstractions.Config.IConfigTable<int, MonsterConfig> _inner;

    /// <summary>
    ///     Creates a generated table wrapper around the runtime config table instance.
    /// </summary>
    /// <param name="inner">The runtime config table instance.</param>
    public MonsterTable(global::GFramework.Game.Abstractions.Config.IConfigTable<int, MonsterConfig> inner)
    {
        _inner = inner ?? throw new global::System.ArgumentNullException(nameof(inner));
    }

    /// <inheritdoc />
    public global::System.Type KeyType => _inner.KeyType;

    /// <inheritdoc />
    public global::System.Type ValueType => _inner.ValueType;

    /// <inheritdoc />
    public int Count => _inner.Count;

    /// <inheritdoc />
    public MonsterConfig Get(int key)
    {
        return _inner.Get(key);
    }

    /// <inheritdoc />
    public bool TryGet(int key, out MonsterConfig? value)
    {
        return _inner.TryGet(key, out value);
    }

    /// <inheritdoc />
    public bool ContainsKey(int key)
    {
        return _inner.ContainsKey(key);
    }

    /// <inheritdoc />
    public global::System.Collections.Generic.IReadOnlyCollection<MonsterConfig> All()
    {
        return _inner.All();
    }
}
