func (s *server) getIdle() db.Connection {
	e := s.idle.Front()
	if e != nil {
		c := s.idle.Remove(e)
		s.busy.PushFront(c)
		s.roundRobin = atomic.AddUint32(&sharedRoundRobin, 1)
		return c.(db.Connection)
	}
	return nil
}
Returns a idle connection if any
package pool
import (
	"container/list"
	"sync/atomic"
	"time"
	"github.com/neo4j/neo4j-go-driver/v4/neo4j/db"
)
type server struct {
	idle            list.List
	busy            list.List
	failedConnectAt time.Time
	roundRobin      uint32
}
var sharedRoundRobin uint32
const rememberFailedConnectDuration = 3 * time.Minute