tracer.go

 1package graphql
 2
 3import (
 4	"context"
 5)
 6
 7var _ Tracer = (*NopTracer)(nil)
 8
 9type Tracer interface {
10	StartOperationParsing(ctx context.Context) context.Context
11	EndOperationParsing(ctx context.Context)
12	StartOperationValidation(ctx context.Context) context.Context
13	EndOperationValidation(ctx context.Context)
14	StartOperationExecution(ctx context.Context) context.Context
15	StartFieldExecution(ctx context.Context, field CollectedField) context.Context
16	StartFieldResolverExecution(ctx context.Context, rc *ResolverContext) context.Context
17	StartFieldChildExecution(ctx context.Context) context.Context
18	EndFieldExecution(ctx context.Context)
19	EndOperationExecution(ctx context.Context)
20}
21
22type NopTracer struct{}
23
24func (NopTracer) StartOperationParsing(ctx context.Context) context.Context {
25	return ctx
26}
27
28func (NopTracer) EndOperationParsing(ctx context.Context) {
29}
30
31func (NopTracer) StartOperationValidation(ctx context.Context) context.Context {
32	return ctx
33}
34
35func (NopTracer) EndOperationValidation(ctx context.Context) {
36}
37
38func (NopTracer) StartOperationExecution(ctx context.Context) context.Context {
39	return ctx
40}
41
42func (NopTracer) StartFieldExecution(ctx context.Context, field CollectedField) context.Context {
43	return ctx
44}
45
46func (NopTracer) StartFieldResolverExecution(ctx context.Context, rc *ResolverContext) context.Context {
47	return ctx
48}
49
50func (NopTracer) StartFieldChildExecution(ctx context.Context) context.Context {
51	return ctx
52}
53
54func (NopTracer) EndFieldExecution(ctx context.Context) {
55}
56
57func (NopTracer) EndOperationExecution(ctx context.Context) {
58}