in pkg/common/resource.go [367:394]
func Sub(left *si.Resource, right *si.Resource) *si.Resource {
if left == nil {
left = &si.Resource{}
}
if right == nil {
return left
}
// clone left
rb := NewResourceBuilder()
for k, v := range left.Resources {
rb.AddResource(k, v.Value)
}
result := rb.Build()
// sub right
for k, v := range right.Resources {
if _, ok := result.Resources[k]; !ok {
result.Resources[k] = &si.Quantity{
Value: -v.Value,
}
} else {
result.Resources[k].Value -= v.Value
}
}
return result
}