def sample_geometric_buffer(
buffer_len: usize, constant_time: bool
) -> Optional[uint]: if constant_time:
buf = bytearray(buffer_len)
fill_bytes(buf) ret = None
for i in range(buffer_len):
if buf[i] > 0:
cand = 8 * i + buf[i].leading_zeroes() ret = cand if ret is None else min(ret, cand)
return ret
else:
for i in range(buffer_len):
buf = bytearray(1)
fill_bytes(buf) if buf[0] > 0:
return 8 * i + buf[0].leading_zeroes()
return None