evm-gasometer 0.37.0

Portable Ethereum Virtual Machine implementation written in pure Rust.
Documentation
use primitive_types::U256;

pub fn log2floor(value: U256) -> u64 {
	assert!(value != U256::zero());
	let mut l: u64 = 256;
	for i in 0..4 {
		let i = 3 - i;
		if value.0[i] == 0u64 {
			l -= 64;
		} else {
			l -= value.0[i].leading_zeros() as u64;
			if l == 0 {
				return l;
			} else {
				return l - 1;
			}
		}
	}
	l
}