Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
absl::hash_internal::HashState Class Reference

#include <hash.h>

Inheritance diagram for absl::hash_internal::HashState:
Inheritance graph
[legend]

Public Member Functions

 HashState (HashState &&)=default
 
HashStateoperator= (HashState &&)=default
 

Static Public Member Functions

static HashState combine_contiguous (HashState hash_state, const unsigned char *first, size_t size)
 
template<typename T , absl::enable_if_t<!IntegralFastPath< T >::value, int > = 0>
static size_t hash (const T &value)
 
template<typename T , absl::enable_if_t< IntegralFastPath< T >::value, int > = 0>
static size_t hash (T value)
 
- Static Public Member Functions inherited from absl::hash_internal::HashStateBase< HashState >
static HashState combine (HashState state)
 
static HashState combine (HashState state)
 
static HashState combine (HashState state, const T &value, const Ts &... values)
 
static HashState combine (HashState state, const T &value, const Ts &... values)
 
static HashState combine_contiguous (HashState state, const T *data, size_t size)
 
static HashState combine_contiguous (HashState state, const T *data, size_t size)
 
static HashState combine_unordered (HashState state, I begin, I end)
 

Private Types

template<typename T >
using IntegralFastPath = conjunction< std::is_integral< T >, is_uniquely_represented< T > >
 
using uint128 = absl::uint128
 

Private Member Functions

 HashState ()
 
 HashState (const HashState &)=default
 
 HashState (uint64_t state)
 

Static Private Member Functions

static uint64_t CombineContiguousImpl (uint64_t state, const unsigned char *first, size_t len, std::integral_constant< int, 4 >)
 
static uint64_t CombineContiguousImpl (uint64_t state, const unsigned char *first, size_t len, std::integral_constant< int, 8 >)
 
static uint64_t CombineLargeContiguousImpl32 (uint64_t state, const unsigned char *first, size_t len)
 
static uint64_t CombineLargeContiguousImpl64 (uint64_t state, const unsigned char *first, size_t len)
 
static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t Hash64 (const unsigned char *data, size_t len)
 
static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t Mix (uint64_t state, uint64_t v)
 
static uint32_t Read1To3 (const unsigned char *p, size_t len)
 
static uint64_t Read4To8 (const unsigned char *p, size_t len)
 
static std::pair< uint64_t, uint64_tRead9To16 (const unsigned char *p, size_t len)
 
static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t Seed ()
 
static uint64_t WyhashImpl (const unsigned char *data, size_t len)
 

Private Attributes

uint64_t state_
 

Static Private Attributes

static constexpr uint64_t kMul
 
static const void *const kSeed = &kSeed
 

Additional Inherited Members

- Public Types inherited from absl::hash_internal::HashStateBase< HashState >
using AbslInternalPiecewiseCombiner = PiecewiseCombiner
 
using AbslInternalPiecewiseCombiner = PiecewiseCombiner
 
using is_hashable = absl::hash_internal::is_hashable< T >
 

Detailed Description

Definition at line 718 of file bloaty/third_party/abseil-cpp/absl/hash/internal/hash.h.

Member Typedef Documentation

◆ IntegralFastPath

template<typename T >
using absl::hash_internal::HashState::IntegralFastPath = conjunction<std::is_integral<T>, is_uniquely_represented<T> >
private

◆ uint128

Constructor & Destructor Documentation

◆ HashState() [1/4]

absl::hash_internal::HashState::HashState ( HashState &&  )
default

◆ HashState() [2/4]

absl::hash_internal::HashState::HashState ( )
inlineprivate

◆ HashState() [3/4]

absl::hash_internal::HashState::HashState ( const HashState )
privatedefault

◆ HashState() [4/4]

absl::hash_internal::HashState::HashState ( uint64_t  state)
inlineexplicitprivate

Member Function Documentation

◆ combine_contiguous()

static HashState absl::hash_internal::HashState::combine_contiguous ( HashState  hash_state,
const unsigned char *  first,
size_t  size 
)
inlinestatic

◆ CombineContiguousImpl() [1/2]

uint64_t absl::hash_internal::HashState::CombineContiguousImpl ( uint64_t  state,
const unsigned char *  first,
size_t  len,
std::integral_constant< int, 4 >   
)
inlinestaticprivate

◆ CombineContiguousImpl() [2/2]

uint64_t absl::hash_internal::HashState::CombineContiguousImpl ( uint64_t  state,
const unsigned char *  first,
size_t  len,
std::integral_constant< int, 8 >   
)
inlinestaticprivate

◆ CombineLargeContiguousImpl32()

uint64_t absl::hash_internal::HashState::CombineLargeContiguousImpl32 ( uint64_t  state,
const unsigned char *  first,
size_t  len 
)
staticprivate

◆ CombineLargeContiguousImpl64()

uint64_t absl::hash_internal::HashState::CombineLargeContiguousImpl64 ( uint64_t  state,
const unsigned char *  first,
size_t  len 
)
staticprivate

◆ hash() [1/2]

template<typename T , absl::enable_if_t<!IntegralFastPath< T >::value, int > = 0>
static size_t absl::hash_internal::HashState::hash ( const T value)
inlinestatic

◆ hash() [2/2]

template<typename T , absl::enable_if_t< IntegralFastPath< T >::value, int > = 0>
static size_t absl::hash_internal::HashState::hash ( T  value)
inlinestatic

◆ Hash64()

static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t absl::hash_internal::HashState::Hash64 ( const unsigned char *  data,
size_t  len 
)
inlinestaticprivate

◆ Mix()

static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t absl::hash_internal::HashState::Mix ( uint64_t  state,
uint64_t  v 
)
inlinestaticprivate

◆ operator=()

HashState& absl::hash_internal::HashState::operator= ( HashState &&  )
default

◆ Read1To3()

static uint32_t absl::hash_internal::HashState::Read1To3 ( const unsigned char *  p,
size_t  len 
)
inlinestaticprivate

◆ Read4To8()

static uint64_t absl::hash_internal::HashState::Read4To8 ( const unsigned char *  p,
size_t  len 
)
inlinestaticprivate

◆ Read9To16()

static std::pair<uint64_t, uint64_t> absl::hash_internal::HashState::Read9To16 ( const unsigned char *  p,
size_t  len 
)
inlinestaticprivate

◆ Seed()

static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t absl::hash_internal::HashState::Seed ( )
inlinestaticprivate

◆ WyhashImpl()

uint64_t absl::hash_internal::HashState::WyhashImpl ( const unsigned char *  data,
size_t  len 
)
staticprivate

Member Data Documentation

◆ kMul

constexpr uint64_t absl::hash_internal::HashState::kMul
staticconstexprprivate
Initial value:
=
sizeof(size_t) == 4 ? uint64_t{0xcc9e2d51}
: uint64_t{0x9ddfea08eb382d69}

Definition at line 727 of file bloaty/third_party/abseil-cpp/absl/hash/internal/hash.h.

◆ kSeed

const ABSL_CONST_INIT void *const absl::hash_internal::HashState::kSeed = &kSeed
staticprivate

◆ state_

uint64_t absl::hash_internal::HashState::state_
private

The documentation for this class was generated from the following files:
uint64_t
unsigned __int64 uint64_t
Definition: stdint-msvc2008.h:90


grpc
Author(s):
autogenerated on Fri May 16 2025 03:02:51