Lines Matching refs:Result
107 template<typename Result = size_t>
110 ALWAYS_INLINE Result LoadBits(size_t bit_offset, size_t bit_length) const { in LoadBits()
111 static_assert(std::is_integral_v<Result>, "Result must be integral"); in LoadBits()
112 static_assert(std::is_unsigned_v<Result>, "Result must be unsigned"); in LoadBits()
113 static_assert(sizeof(Result) <= kMaxSingleLoadBytes); in LoadBits()
114 DCHECK(IsAligned<sizeof(Result)>(data_)); in LoadBits()
117 DCHECK_LE(bit_length, BitSizeOf<Result>()); in LoadBits()
122 Result* data = reinterpret_cast<Result*>(data_); in LoadBits()
123 size_t width = BitSizeOf<Result>(); in LoadBits()
126 Result value = data[index] >> shift; in LoadBits()
129 Result extra = data[index + (shift + (bit_length - 1)) / width]; in LoadBits()
131 Result clear = (std::numeric_limits<Result>::max() << 1) << (bit_length - 1); in LoadBits()
386 template<typename Result = size_t>
387 ALWAYS_INLINE Result ReadBits(size_t bit_length) { in ReadBits()
388 return ReadRegion(bit_length).LoadBits<Result>(/* bit_offset */ 0, bit_length); in ReadBits()