#ifndef MEDIA_BASE_RANGES_H_
#define MEDIA_BASE_RANGES_H_
#include <stddef.h>
#include <stdint.h>
#include <algorithm>
#include <ostream>
#include <vector>
#include "base/check_op.h"
#include "base/time/time.h"
#include "media/base/media_export.h"
namespace media {
template <class T>
class Ranges { … };
template<class T>
size_t Ranges<T>::Add(T start, T end) { … }
template<>
MEDIA_EXPORT void
Ranges<base::TimeDelta>::DCheckLT(const base::TimeDelta& lhs,
const base::TimeDelta& rhs) const;
template<class T>
void Ranges<T>::DCheckLT(const T& lhs, const T& rhs) const { … }
template<class T>
size_t Ranges<T>::size() const { … }
template<class T>
T Ranges<T>::start(size_t i) const { … }
template<class T>
T Ranges<T>::end(size_t i) const { … }
template <class T>
const std::pair<T, T>& Ranges<T>::back() const { … }
template <class T>
bool Ranges<T>::contains(size_t i, const T& entry) const { … }
template <class T>
bool Ranges<T>::empty() const { … }
template<class T>
void Ranges<T>::clear() { … }
template<class T>
Ranges<T> Ranges<T>::IntersectionWith(const Ranges<T>& other) const { … }
}
#endif