| 54 | var _ Pooler = &CachedBridgePool{} |
| 55 | |
| 56 | type CachedBridgePool struct { |
| 57 | cache *ristretto.Cache[string, *aibridge.RequestBridge] |
| 58 | // providers is the live provider set used by new RequestBridge |
| 59 | // instances. Includes disabled providers. |
| 60 | providers atomic.Pointer[[]aibridge.Provider] |
| 61 | providerVersion atomic.Int64 |
| 62 | logger slog.Logger |
| 63 | options PoolOptions |
| 64 | |
| 65 | singleflight *singleflight.Group[string, *aibridge.RequestBridge] |
| 66 | |
| 67 | metrics *aibridge.Metrics |
| 68 | tracer trace.Tracer |
| 69 | |
| 70 | shutDownOnce sync.Once |
| 71 | shuttingDownCh chan struct{} |
| 72 | } |
| 73 | |
| 74 | func NewCachedBridgePool(options PoolOptions, providers []aibridge.Provider, logger slog.Logger, metrics *aibridge.Metrics, tracer trace.Tracer) (*CachedBridgePool, error) { |
| 75 | cache, err := ristretto.NewCache(&ristretto.Config[string, *aibridge.RequestBridge]{ |
nothing calls this directly
no outgoing calls
no test coverage detected