diff --git a/util/ints/ints.go b/util/ints/ints.go new file mode 100644 index 00000000..6c15bb64 --- /dev/null +++ b/util/ints/ints.go @@ -0,0 +1,58 @@ +// Copyright © 2016 Abcum Ltd +// +// 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 ints + +func Min(min int, vals ...int) int { + for _, val := range vals { + if val < min { + min = val + } + } + return min +} + +func Max(max int, vals ...int) int { + for _, val := range vals { + if val > max { + max = val + } + } + return max +} + +func Below(cen, val int) int { + if val < cen { + return val + } + return cen +} + +func Above(cen, val int) int { + if val > cen { + return val + } + return cen +} + +func Between(min, max, val int) int { + switch { + case val < min: + return min + case val > max: + return max + default: + return val + } +}