mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-06-17 12:28:57 -04:00
30 lines
638 B
Go
30 lines
638 B
Go
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
|
|
}
|