add SliceForCapabilityPrimitive func

This commit is contained in:
Michael Stürmer 2024-04-23 10:16:18 +02:00
parent f6082a78b0
commit 895c4e69c6
1 changed files with 11 additions and 1 deletions

View File

@ -227,7 +227,7 @@ const (
ListObjectParamLabel uint8 = 0x06
)
// CapabilityPrimitiveFromSlice OR's all the capabilitites together.
// CapabilityPrimitiveFromSlice OR's all the capabilities together.
func CapabilityPrimitiveFromSlice(capabilitites []uint64) uint64 {
var primitive uint64
for _, c := range capabilitites {
@ -235,3 +235,13 @@ func CapabilityPrimitiveFromSlice(capabilitites []uint64) uint64 {
}
return primitive
}
func SliceForCapabilityPrimitive(primitive uint64) (capabilities []uint64) {
for i := 0; i < 64; i++ {
c := uint64(1) << i
if c&primitive > 0 {
capabilities = append(capabilities, c)
}
}
return
}