summaryrefslogtreecommitdiffstats
path: root/layout/generic/ScrollGeneration.cpp
blob: 5f576187b3a71772257cfbb0ae6b929bd40596c9 (plain)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "ScrollGeneration.h"

#include <ostream>

namespace mozilla {

template <typename Tag>
ScrollGeneration<Tag>::ScrollGeneration() : mValue(0) {}

template <typename Tag>
ScrollGeneration<Tag>::ScrollGeneration(uint64_t aValue) : mValue(aValue) {}

template <typename Tag>
bool ScrollGeneration<Tag>::operator<(
    const ScrollGeneration<Tag>& aOther) const {
  return mValue < aOther.mValue;
}

template <typename Tag>
bool ScrollGeneration<Tag>::operator==(
    const ScrollGeneration<Tag>& aOther) const {
  return mValue == aOther.mValue;
}

template <typename Tag>
bool ScrollGeneration<Tag>::operator!=(
    const ScrollGeneration<Tag>& aOther) const {
  return !(*this == aOther);
}

template <typename Tag>
std::ostream& operator<<(std::ostream& aStream,
                         const ScrollGeneration<Tag>& aGen) {
  return aStream << aGen.mValue;
}

template struct ScrollGeneration<APZTag>;
template struct ScrollGeneration<MainThreadTag>;

template std::ostream& operator<<(std::ostream&,
                                  const ScrollGeneration<APZTag>&);
template std::ostream& operator<<(std::ostream&,
                                  const ScrollGeneration<MainThreadTag>&);

}  // namespace mozilla