research/brotlidump.py
def decodePeek(self, data):
        """Find which symbol index matches the given data (from peek, as a number)
        and return the number of bits decoded.
        Can also be used to figure out length of a symbol.
        """
        #do binary search for word length
        #invariant: lo<=length<=hi
        lo, hi = self.minLength, self.maxLength
        while lo<=hi:
            mid = lo+hi>>1
            #note lo<=mid<hi at this point
            mask = (1<<mid)-1
            #lets see what happens if we guess length is mid
            try: index = self.decodeTable[data&mask]
            except KeyError:
                #too many bits specified, reduce estimated length
                hi = mid-1
                continue
            #we found a symbol, but there could be a longer match
            symbolLength = self.lengthTable[index]
            if symbolLength<=mid:
                #all bits match, symbol must be right
                return symbolLength, Symbol(self, index)
            #there must be more bits to match
            lo = mid+1
        return lo, Symbol(self, index)
def decodePeek(self, data):
        """Find which symbol index matches the given data (from peek, as a number)
        and return the number of bits decoded.
        Can also be used to figure out length of a symbol.
        """
        #do binary search for word length
        #invariant: lo<=length<=hi
        lo, hi = self.minLength, self.maxLength
        while lo<=hi:
            mid = lo+hi>>1
            #note lo<=mid<hi at this point
            mask = (1<<mid)-1
            #lets see what happens if we guess length is mid
            try: index = self.decodeTable[data&mask]
            except KeyError:
                #too many bits specified, reduce estimated length
                hi = mid-1
                continue
            #we found a symbol, but there could be a longer match
            symbolLength = self.lengthTable[index]
            if symbolLength<=mid:
                #all bits match, symbol must be right
                return symbolLength, Symbol(self, index)
            #there must be more bits to match
            lo = mid+1
        return lo, Symbol(self, index)
def decodePeek ( self , data ) : #do binary search for word length #invariant: lo<=length<=hi lo , hi = self . minLength , self . maxLength while lo <= hi : mid = lo + hi >> 1 #note lo<=mid<hi at this point mask = ( 1 << mid ) - 1 #lets see what happens if we guess length is mid try : index = self . decodeTable [ data & mask ] except KeyError : #too many bits specified, reduce estimated length hi = mid - 1 continue #we found a symbol, but there could be a longer match symbolLength = self . lengthTable [ index ] if symbolLength <= mid : #all bits match, symbol must be right return symbolLength , Symbol ( self , index ) #there must be more bits to match lo = mid + 1 return lo , Symbol ( self , index )
Find which symbol index matches the given data (from peek, as a number)
        and return the number of bits decoded.
        Can also be used to figure out length of a symbol.
Find which symbol index matches the given data ( from peek as a number ) and return the number of bits decoded . Can also be used to figure out length of a symbol .