// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_GFX_RANGE_RANGE_H_ #define UI_GFX_RANGE_RANGE_H_ #include <stddef.h> #include <stdint.h> #include <algorithm> #include <iosfwd> #include <limits> #include <string> #include "base/numerics/safe_conversions.h" #include "build/build_config.h" #include "ui/gfx/range/gfx_range_export.h" #if BUILDFLAG(IS_APPLE) #if __OBJC__ #import <Foundation/Foundation.h> #else typedef struct _NSRange NSRange; #endif #endif // BUILDFLAG(IS_APPLE) namespace gfx { // This class represents either a forward range [min, max) or a reverse range // (max, min]. |start_| is always the first of these and |end_| the second; as a // result, the range is forward if (start_ <= end_). The zero-width range // [val, val) is legal, contains and intersects itself, and is contained by and // intersects any nonempty range [min, max) where min <= val < max. class GFX_RANGE_EXPORT Range { … }; GFX_RANGE_EXPORT std::ostream& operator<<(std::ostream& os, const Range& range); } // namespace gfx #endif // UI_GFX_RANGE_RANGE_H_