| 123456789101112131415161718192021222324252627282930313233 |
- // 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
- }
|