type Task struct{}

func (t *Task) Execute(ctx context.Context) error {
  result, err := workflows.WithTaskSpanResult(ctx, "Expensive Compute", func(ctx context.Context) (int, error) {
		return 6 * 7, nil
	})
  if err != nil {
    return fmt.Errorf("failed to compute: %w", err)
  }

	return nil
}
workflows.WithTaskSpanResult[Result any](
    ctx context.Context,
    name string,
    f func(ctx context.Context) (Result, error),
) (Result, error)

Wrap a function with a tracing span.

Parameters

name
string

The name of the span

f
func(context.Context) (Result, error)

The function to wrap

Returns

The result of the function and an error if any.

type Task struct{}

func (t *Task) Execute(ctx context.Context) error {
  result, err := workflows.WithTaskSpanResult(ctx, "Expensive Compute", func(ctx context.Context) (int, error) {
		return 6 * 7, nil
	})
  if err != nil {
    return fmt.Errorf("failed to compute: %w", err)
  }

	return nil
}