package cvss import ( "fmt" ) // Individual CVSS v2 score. // // Note: since scores range from 0.0 to 10.0 with one decimal place of // precision, they can be safely represented as a uint8. type v2Score uint8 // Return floating point representation of score. func newV2Score(val float64) (v2Score, error) { // check score range if val < 0.0 || val > 10.0 { return v2Score(0), fmt.Errorf("score value out of range [0, 10]: %f", val) } // convert to score, return success return v2Score(uint8(10.0 * val)), nil } // Return string representation of score. func (s v2Score) String() string { return fmt.Sprintf("%d.%d", s / 10, s % 10) } // Return floating point representation of score. func (s v2Score) Float() float32 { return float32(s) / 10.0 }