Rename and comment on why sharing is safe

This commit is contained in:
John Howard 2022-11-01 13:36:26 -07:00
parent ca414d707a
commit 916fe2f896

View File

@ -74,11 +74,12 @@ type Selector interface {
RequiresExactMatch(label string) (value string, found bool) RequiresExactMatch(label string) (value string, found bool)
} }
var everythingSelector Selector = internalSelector{} // Sharing this saves 1 alloc per use; this is safe because it's immutable.
var sharedEverythingSelector Selector = internalSelector{}
// Everything returns a selector that matches all labels. // Everything returns a selector that matches all labels.
func Everything() Selector { func Everything() Selector {
return everythingSelector return sharedEverythingSelector
} }
type nothingSelector struct{} type nothingSelector struct{}
@ -93,11 +94,12 @@ func (n nothingSelector) RequiresExactMatch(label string) (value string, found b
return "", false return "", false
} }
var internalNothingSelector Selector = nothingSelector{} // Sharing this saves 1 alloc per use; this is safe because it's immutable.
var sharedNothingSelector Selector = nothingSelector{}
// Nothing returns a selector that matches no labels // Nothing returns a selector that matches no labels
func Nothing() Selector { func Nothing() Selector {
return internalNothingSelector return sharedNothingSelector
} }
// NewSelector returns a nil selector // NewSelector returns a nil selector