refactor(tracing)!: return helper struct for RunTraced
This commit is contained in:
parent
2848989a6a
commit
fe66be7e2a
1 changed files with 7 additions and 3 deletions
10
tracing.go
10
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] {
|
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) T {
|
return func(ctx context.Context, name string, args ...any) TracedFuncResult[T] {
|
||||||
span := t.StartSpan(ctx, op, name)
|
span := t.StartSpan(ctx, op, name)
|
||||||
defer span.End()
|
defer span.End()
|
||||||
ctx = span.Context()
|
ctx = span.Context()
|
||||||
|
|
Loading…
Reference in a new issue