From fe66be7e2a2df9fcfdd2d4c54533eba822c56360 Mon Sep 17 00:00:00 2001 From: DevMiner Date: Sun, 28 Jul 2024 17:03:48 +0200 Subject: [PATCH] refactor(tracing)!: return helper struct for `RunTraced` --- tracing.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tracing.go b/tracing.go index b0f1d9c..f9c16c1 100644 --- a/tracing.go +++ b/tracing.go @@ -82,10 +82,14 @@ func WithOtelTracer(tracer trace.Tracer) ConfigureSpanStartFunc { } } -type TracedFunc[T any] func(context.Context, string, ...any) T +type TracedFunc[T any] func(context.Context, string, ...any) TracedFuncResult[T] +type TracedFuncResult[T any] struct { + Result T + Err error +} -func RunTraced[T any](t *Telemetry, op string, fn func(context.Context, ...any) T) TracedFunc[T] { - return func(ctx context.Context, name string, args ...any) T { +func RunTraced[T any](t *Telemetry, op string, fn func(context.Context, ...any) TracedFuncResult[T]) TracedFunc[T] { + return func(ctx context.Context, name string, args ...any) TracedFuncResult[T] { span := t.StartSpan(ctx, op, name) defer span.End() ctx = span.Context()