Initial QSfera import
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
package slogcommon
|
||||
|
||||
import "log/slog"
|
||||
|
||||
func FindAttrByKey(attrs []slog.Attr, key string) (slog.Attr, bool) {
|
||||
for i := range attrs {
|
||||
if attrs[i].Key == key {
|
||||
return attrs[i], true
|
||||
}
|
||||
}
|
||||
|
||||
return slog.Attr{}, false
|
||||
}
|
||||
|
||||
func FindAttrByGroupAndKey(attrs []slog.Attr, groups []string, key string) (slog.Attr, bool) {
|
||||
if len(groups) == 0 {
|
||||
return FindAttrByKey(attrs, key)
|
||||
}
|
||||
|
||||
for i := range attrs {
|
||||
if attrs[i].Key == groups[0] && attrs[i].Value.Kind() == slog.KindGroup {
|
||||
attr, found := FindAttrByGroupAndKey(attrs[i].Value.Group(), groups[1:], key)
|
||||
if found {
|
||||
return attr, true
|
||||
}
|
||||
}
|
||||
}
|
||||
return slog.Attr{}, false
|
||||
}
|
||||
Reference in New Issue
Block a user