| /* |
| Copyright 2023 The Kubernetes Authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package set |
| |
| // ordered is a constraint that permits any ordered type: any type |
| // that supports the operators < <= >= >. |
| // If future releases of Go add new ordered types, |
| // this constraint will be modified to include them. |
| type ordered interface { |
| integer | float | ~string |
| } |
| |
| // integer is a constraint that permits any integer type. |
| // If future releases of Go add new predeclared integer types, |
| // this constraint will be modified to include them. |
| type integer interface { |
| signed | unsigned |
| } |
| |
| // float is a constraint that permits any floating-point type. |
| // If future releases of Go add new predeclared floating-point types, |
| // this constraint will be modified to include them. |
| type float interface { |
| ~float32 | ~float64 |
| } |
| |
| // signed is a constraint that permits any signed integer type. |
| // If future releases of Go add new predeclared signed integer types, |
| // this constraint will be modified to include them. |
| type signed interface { |
| ~int | ~int8 | ~int16 | ~int32 | ~int64 |
| } |
| |
| // unsigned is a constraint that permits any unsigned integer type. |
| // If future releases of Go add new predeclared unsigned integer types, |
| // this constraint will be modified to include them. |
| type unsigned interface { |
| ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
| } |