package cfg // Read from the refs of n modifiers with lock protection func Read[T any, V any](fn func(*T) *V, xs ...*Modifier[T]) V { for _, v := range xs { if v == nil { continue } v.mu.RLock() vv := fn(&v.Ref) v.mu.RUnlock() if vv != nil { return *vv } } return *new(V) }