Phase 6: TCP Server #6

Merged
krendelhoff merged 5 commits from phase-6-tcp-server into master 2025-08-23 08:54:13 +03:00
Showing only changes of commit 9d10f385b5 - Show all commits

27
internal/lib/sl/sl.go Normal file
View file

@ -0,0 +1,27 @@
package sl
import (
"context"
"log/slog"
)
// Err creates a structured error attribute for slog
func Err(err error) slog.Attr {
return slog.Attr{
Key: "error",
Value: slog.StringValue(err.Error()),
}
}
// MockHandler is a test handler that discards all log messages
type MockHandler struct{}
func (h *MockHandler) Enabled(context.Context, slog.Level) bool { return false }
func (h *MockHandler) Handle(context.Context, slog.Record) error { return nil }
func (h *MockHandler) WithAttrs([]slog.Attr) slog.Handler { return h }
func (h *MockHandler) WithGroup(string) slog.Handler { return h }
// NewMockLogger creates a logger that discards all messages for testing
func NewMockLogger() *slog.Logger {
return slog.New(&MockHandler{})
}