compare.go (1393B)
1 // Copyright 2019 The Hugo Authors. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software 9 // distributed under the License is distributed on an "AS IS" BASIS, 10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package compare 15 16 // Eqer can be used to determine if this value is equal to the other. 17 // The semantics of equals is that the two value are interchangeable 18 // in the Hugo templates. 19 type Eqer interface { 20 // Eq returns whether this value is equal to the other. 21 // This is for internal use. 22 Eq(other any) bool 23 } 24 25 // ProbablyEqer is an equal check that may return false positives, but never 26 // a false negative. 27 type ProbablyEqer interface { 28 // For internal use. 29 ProbablyEq(other any) bool 30 } 31 32 // Comparer can be used to compare two values. 33 // This will be used when using the le, ge etc. operators in the templates. 34 // Compare returns -1 if the given version is less than, 0 if equal and 1 if greater than 35 // the running version. 36 type Comparer interface { 37 Compare(other any) int 38 }