From 6a41f9d85660abd7fa70daad28a4731a59b358d0 Mon Sep 17 00:00:00 2001 From: Ammar Bandukwala Date: Tue, 31 Mar 2020 14:54:42 -0500 Subject: [PATCH] Revert "Make SinkContext a struct" It's better as an interface so users don't have to call the `Sink` method on the struct during Make. - Move SinkContext into context.go --- context.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/context.go b/context.go index e3f20c1..d44a049 100644 --- a/context.go +++ b/context.go @@ -4,15 +4,21 @@ import "context" type loggerCtxKey = struct{} -// SinkContext is used by slog.Make to compose many loggers together. -type SinkContext struct { +type sinkContext struct { + context.Context + Sink +} + +// SinkContext is a context that implements Sink. +// It may be returned by log creators to allow for composition. +type SinkContext interface { Sink context.Context } func contextWithLogger(ctx context.Context, l logger) SinkContext { ctx = context.WithValue(ctx, loggerCtxKey{}, l) - return SinkContext{ + return &sinkContext{ Context: ctx, Sink: l, }