mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
657 B
32 lines
657 B
// Copyright 2025 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package gtprof |
|
|
|
type EventConfig struct { |
|
attributes []*TraceAttribute |
|
} |
|
|
|
type EventOption interface { |
|
applyEvent(*EventConfig) |
|
} |
|
|
|
type applyEventFunc func(*EventConfig) |
|
|
|
func (f applyEventFunc) applyEvent(cfg *EventConfig) { |
|
f(cfg) |
|
} |
|
|
|
func WithAttributes(attrs ...*TraceAttribute) EventOption { |
|
return applyEventFunc(func(cfg *EventConfig) { |
|
cfg.attributes = append(cfg.attributes, attrs...) |
|
}) |
|
} |
|
|
|
func eventConfigFromOptions(options ...EventOption) *EventConfig { |
|
cfg := &EventConfig{} |
|
for _, opt := range options { |
|
opt.applyEvent(cfg) |
|
} |
|
return cfg |
|
}
|
|
|