Before, the entire url was being lowercased, which mutilates various case-sensitive parts.
Now, only the host gets lowercased, and the test verify that the userinfo, path, and query parts preserve their original case.
By default, the read limit is never set by NewConnection.
When using the default pool dialer, a read limit of 512KB is set.
When the read limit option is set, all sockets passed to NewConnection have that read limit set.
Replaces the flat key-value logging scheme with component-based structured
logging via go-mana-component. Each layer (pool, worker, connection) builds
its own component identity and derives a *slog.Logger from a caller-supplied
slog.Handler.
- Delete logging/ package (logging.go, logging_test.go)
- Strip LoggingEnabled and LogLevel from ConnectionConfig, PoolConfig,
WorkerConfig; remove associated option funcs
- Change NewConnection and NewConnectionFromSocket to accept ctx and
slog.Handler instead of *slog.Logger; constructors build component
identity via MustNew/MustExtend internally
- Change WorkerFactory, NewWorker, connect, and RunDialer to carry
slog.Handler; remove PoolPlugin.Handler
- Change NewPool to establish pool component identity via MustNew;
remove pool_id field, PoolPlugin.ID, and ErrInvalidPoolID
- Fix data race in MockSlogHandler: WithAttrs now shares parent mutex
pointer rather than allocating a new one per child
- Run go fix