// SPDX-FileCopyrightText: 2026 Stefan Majewsky // SPDX-License-Identifier: Apache-2.0 package gg_pgx import ( "context" "github.com/jackc/pgx/v5" "github.com/jackc/pgx/v5/pgxpool" "go.xyrillian.de/gg/pgruntime" ) // SingleConnector returns a [pgruntime.Connector] that spawns individual database connections. func SingleConnector() pgruntime.Connector[*Conn] { return func(ctx context.Context, dbURL string) (*Conn, error) { conn, err := pgx.Connect(ctx, dbURL) return maybe(NewConn, conn), err } } // PoolConnector returns a [pgruntime.Connector] that spawns database connection pools. func PoolConnector() pgruntime.Connector[*Pool] { return func(ctx context.Context, dbURL string) (*Pool, error) { pool, err := pgxpool.New(ctx, dbURL) return maybe(NewPool, pool), err } }