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] {
|
||||
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()
|
||||
|
|
Loading…
Reference in a new issue