public async Task Async()
    {
        var createCount = 0;

        await using var pool = new DbConnectorPool(new DbConnectorPoolSettings { Create = CreateConnection });

        await using (var connector1 = pool.Get())
            await using (var connector2 = pool.Get())
            {
                (await connector1.Command("select null;").QuerySingleAsync <object>()).Should().Be(null);
                (await connector2.Command("select null;").QuerySingleAsync <object>()).Should().Be(null);
            }
        await using (var connector3 = pool.Get())
            (await connector3.Command("select null;").QuerySingleAsync <object>()).Should().Be(null);

        createCount.Should().Be(2);

        DbConnector CreateConnection()
        {
            createCount++;
            return(DbConnector.Create(
                       new SqliteConnection("Data Source=:memory:"),
                       new DbConnectorSettings {
                AutoOpen = true
            }));
        }
    }
 public PooledDbConnector(DbConnectorPool pool, DbConnector inner)
     : base(inner)
 {
     m_pool = pool;
 }