Lines Matching refs:Result
100 template<typename Result = size_t>
103 ALWAYS_INLINE Result LoadBits(size_t bit_offset, size_t bit_length) const { in LoadBits()
104 static_assert(std::is_integral_v<Result>, "Result must be integral"); in LoadBits()
105 static_assert(std::is_unsigned_v<Result>, "Result must be unsigned"); in LoadBits()
106 DCHECK(IsAligned<sizeof(Result)>(data_)); in LoadBits()
109 DCHECK_LE(bit_length, BitSizeOf<Result>()); in LoadBits()
114 Result* data = reinterpret_cast<Result*>(data_); in LoadBits()
115 size_t width = BitSizeOf<Result>(); in LoadBits()
118 Result value = data[index] >> shift; in LoadBits()
121 Result extra = data[index + (shift + (bit_length - 1)) / width]; in LoadBits()
123 Result clear = (std::numeric_limits<Result>::max() << 1) << (bit_length - 1); in LoadBits()
381 template<typename Result = size_t>
382 ALWAYS_INLINE Result ReadBits(size_t bit_length) { in ReadBits()
383 return ReadRegion(bit_length).LoadBits<Result>(/* bit_offset */ 0, bit_length); in ReadBits()