proxygen
Range.h File Reference
#include <folly/Portability.h>
#include <folly/hash/SpookyHashV2.h>
#include <folly/lang/Exception.h>
#include <folly/portability/Constexpr.h>
#include <folly/portability/String.h>
#include <algorithm>
#include <array>
#include <cassert>
#include <climits>
#include <cstddef>
#include <cstring>
#include <iosfwd>
#include <iterator>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <folly/CpuId.h>
#include <folly/Likely.h>
#include <folly/Traits.h>
#include <folly/detail/RangeCommon.h>
#include <folly/detail/RangeSse42.h>

Go to the source code of this file.

Classes

struct  folly::IsSomeString< T >
 
struct  folly::IsSomeString< std::string >
 
class  folly::Range< Iter >
 
struct  folly::detail::IsCharPointer< T >
 
struct  folly::detail::IsCharPointer< char * >
 
struct  folly::detail::IsCharPointer< const char * >
 
class  folly::Range< Iter >
 
struct  folly::detail::ComparableAsStringPiece< A, B >
 
struct  folly::AsciiCaseSensitive
 
struct  folly::AsciiCaseInsensitive
 
struct  folly::hasher< Key, Enable >
 
struct  folly::hasher< folly::Range< T * >, std::enable_if_t< std::is_integral< T >::value, void > >
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::detail
 
 folly::literals
 
 folly::literals::string_piece_literals
 

Typedefs

typedef Range< char * > folly::MutableStringPiece
 
typedef Range< const unsigned char * > folly::ByteRange
 
typedef Range< unsigned char * > folly::MutableByteRange
 

Functions

template<class Iter , class Comp = std::equal_to<typename Range<Iter>::value_type>>
size_t folly::qfind (const Range< Iter > &haystack, const Range< Iter > &needle, Comp eq=Comp())
 
template<class Iter >
size_t folly::qfind (const Range< Iter > &haystack, const typename Range< Iter >::value_type &needle)
 
template<class Iter >
size_t folly::rfind (const Range< Iter > &haystack, const typename Range< Iter >::value_type &needle)
 
template<class Iter >
size_t folly::qfind_first_of (const Range< Iter > &haystack, const Range< Iter > &needle)
 
template<class Iter >
std::enable_if< std::is_same< typename std::iterator_traits< Iter >::iterator_category, std::random_access_iterator_tag >::value, typename std::iterator_traits< Iter >::reference >::type folly::detail::value_before (Iter i)
 
template<class Iter >
std::enable_if< !std::is_same< typename std::iterator_traits< Iter >::iterator_category, std::random_access_iterator_tag >::value, typename std::iterator_traits< Iter >::reference >::type folly::detail::value_before (Iter i)
 
template<class Iter >
void folly::swap (Range< Iter > &lhs, Range< Iter > &rhs)
 
template<class Iter >
constexpr Range< Iter > folly::range (Iter first, Iter last)
 
template<class Collection >
constexpr auto folly::range (Collection &v) -> Range< decltype(v.data())>
 
template<class Collection >
constexpr auto folly::range (Collection const &v) -> Range< decltype(v.data())>
 
template<class Collection >
constexpr auto folly::crange (Collection const &v) -> Range< decltype(v.data())>
 
template<class T , size_t n>
constexpr Range< T * > folly::range (T(&array)[n])
 
template<class T , size_t n>
constexpr Range< T const * > folly::range (T const (&array)[n])
 
template<class T , size_t n>
constexpr Range< T const * > folly::crange (T const (&array)[n])
 
template<class T , size_t n>
constexpr Range< T * > folly::range (std::array< T, n > &array)
 
template<class T , size_t n>
constexpr Range< T const * > folly::range (std::array< T, n > const &array)
 
template<class T , size_t n>
constexpr Range< T const * > folly::crange (std::array< T, n > const &array)
 
template<class C >
std::basic_ostream< C > & folly::operator<< (std::basic_ostream< C > &os, Range< C const * > piece)
 
template<class C >
std::basic_ostream< C > & folly::operator<< (std::basic_ostream< C > &os, Range< C * > piece)
 
template<class Iter >
bool folly::operator== (const Range< Iter > &lhs, const Range< Iter > &rhs)
 
template<class Iter >
bool folly::operator!= (const Range< Iter > &lhs, const Range< Iter > &rhs)
 
template<class Iter >
bool folly::operator< (const Range< Iter > &lhs, const Range< Iter > &rhs)
 
template<class Iter >
bool folly::operator<= (const Range< Iter > &lhs, const Range< Iter > &rhs)
 
template<class Iter >
bool folly::operator> (const Range< Iter > &lhs, const Range< Iter > &rhs)
 
template<class Iter >
bool folly::operator>= (const Range< Iter > &lhs, const Range< Iter > &rhs)
 
template<class T , class U >
_t< std::enable_if< detail::ComparableAsStringPiece< T, U >::value, bool > > folly::operator== (const T &lhs, const U &rhs)
 
template<class T , class U >
_t< std::enable_if< detail::ComparableAsStringPiece< T, U >::value, bool > > folly::operator!= (const T &lhs, const U &rhs)
 
template<class T , class U >
_t< std::enable_if< detail::ComparableAsStringPiece< T, U >::value, bool > > folly::operator< (const T &lhs, const U &rhs)
 
template<class T , class U >
_t< std::enable_if< detail::ComparableAsStringPiece< T, U >::value, bool > > folly::operator> (const T &lhs, const U &rhs)
 
template<class T , class U >
_t< std::enable_if< detail::ComparableAsStringPiece< T, U >::value, bool > > folly::operator<= (const T &lhs, const U &rhs)
 
template<class T , class U >
_t< std::enable_if< detail::ComparableAsStringPiece< T, U >::value, bool > > folly::operator>= (const T &lhs, const U &rhs)
 
size_t folly::detail::qfind_first_byte_of (const StringPiece haystack, const StringPiece needles)
 
template<class Iter , class Comp >
size_t folly::qfind_first_of (const Range< Iter > &haystack, const Range< Iter > &needles, Comp eq)
 
template<>
size_t folly::qfind (const Range< const char * > &haystack, const char &needle)
 
template<>
size_t folly::rfind (const Range< const char * > &haystack, const char &needle)
 
template<>
size_t folly::qfind (const Range< const unsigned char * > &haystack, const unsigned char &needle)
 
template<>
size_t folly::rfind (const Range< const unsigned char * > &haystack, const unsigned char &needle)
 
template<>
size_t folly::qfind_first_of (const Range< const char * > &haystack, const Range< const char * > &needles)
 
template<>
size_t folly::qfind_first_of (const Range< const unsigned char * > &haystack, const Range< const unsigned char * > &needles)
 
constexpr Range< char const * > folly::literals::string_piece_literals::operator""_sp (char const *str, size_t len) noexcept
 
constexpr Range< char16_t const * > folly::literals::string_piece_literals::operator""_sp (char16_t const *str, size_t len) noexcept
 
constexpr Range< char32_t const * > folly::literals::string_piece_literals::operator""_sp (char32_t const *str, size_t len) noexcept
 
constexpr Range< wchar_t const * > folly::literals::string_piece_literals::operator""_sp (wchar_t const *str, size_t len) noexcept