blob: 70de74e9eb962165c3531b0eb34688423c1addf0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
#include <limits>
#include <cstdint>
namespace search {
template <typename T>
class Range {
public:
Range() :
_lower(std::numeric_limits<T>::max()),
_upper(std::numeric_limits<T>::min()) { }
Range(T v) : _lower(v), _upper(v) { }
Range(T low, T high) : _lower(low), _upper(high) { }
T lower() const { return _lower; }
T upper() const { return _upper; }
bool valid() const { return _lower <= _upper; }
bool isPoint() const { return _lower == _upper; }
private:
T _lower;
T _upper;
};
using Int64Range = Range<int64_t>;
using DoubleRange = Range<double>;
} // namespace search
|