50 lines
792 B
Go
50 lines
792 B
Go
package versions
|
|
|
|
// All is an infinite set containing all possible versions.
|
|
var All Set
|
|
|
|
// None is a finite set containing no versions.
|
|
var None Set
|
|
|
|
type setExtreme bool
|
|
|
|
func (s setExtreme) Has(v Version) bool {
|
|
return bool(s)
|
|
}
|
|
|
|
func (s setExtreme) AllRequested() Set {
|
|
// The extreme sets request nothing.
|
|
return None
|
|
}
|
|
|
|
func (s setExtreme) GoString() string {
|
|
switch bool(s) {
|
|
case true:
|
|
return "versions.All"
|
|
case false:
|
|
return "versions.None"
|
|
default:
|
|
panic("strange new boolean value")
|
|
}
|
|
}
|
|
|
|
var _ setFinite = setExtreme(false)
|
|
|
|
func (s setExtreme) isFinite() bool {
|
|
// Only None is finite
|
|
return !bool(s)
|
|
}
|
|
|
|
func (s setExtreme) listVersions() List {
|
|
return nil
|
|
}
|
|
|
|
func init() {
|
|
All = Set{
|
|
setI: setExtreme(true),
|
|
}
|
|
None = Set{
|
|
setI: setExtreme(false),
|
|
}
|
|
}
|