46 lines
622 B
Go
46 lines
622 B
Go
// SPDX-License-Identifier: Apache-2.0
|
|
// Copyright Authors of K9s
|
|
|
|
package vul
|
|
|
|
import "fmt"
|
|
|
|
type scorer uint8
|
|
|
|
func (b scorer) String() string {
|
|
return fmt.Sprintf("%08b", b)[:6]
|
|
}
|
|
|
|
func newScorer(t tally) scorer {
|
|
return fromTally(t)
|
|
}
|
|
|
|
func (b scorer) Add(b1 scorer) scorer {
|
|
return b | b1
|
|
}
|
|
|
|
func fromTally(t tally) scorer {
|
|
var b scorer
|
|
for i, v := range t {
|
|
if v == 0 {
|
|
continue
|
|
}
|
|
switch i {
|
|
case sevCritical:
|
|
b |= 0x80
|
|
case sevHigh:
|
|
b |= 0x40
|
|
case sevMedium:
|
|
b |= 0x20
|
|
case sevLow:
|
|
b |= 0x10
|
|
case sevNegligible:
|
|
b |= 0x08
|
|
case sevUnknown:
|
|
b |= 0x04
|
|
}
|
|
}
|
|
|
|
return b
|
|
}
|