add options for components

This commit is contained in:
ginuerzh
2023-10-26 22:20:46 +08:00
parent 6431cd8bb9
commit 9e767d6745
6 changed files with 37 additions and 11 deletions

View File

@ -2,8 +2,11 @@ package admission
import "context"
type Options struct{}
type Option func(opts *Options)
type Admission interface {
Admit(ctx context.Context, addr string) bool
Admit(ctx context.Context, addr string, opts ...Option) bool
}
type admissionGroup struct {
@ -16,9 +19,9 @@ func AdmissionGroup(admissions ...Admission) Admission {
}
}
func (p *admissionGroup) Admit(ctx context.Context, addr string) bool {
func (p *admissionGroup) Admit(ctx context.Context, addr string, opts ...Option) bool {
for _, admission := range p.admissions {
if admission != nil && !admission.Admit(ctx, addr) {
if admission != nil && !admission.Admit(ctx, addr, opts...) {
return false
}
}