netmask_to_prefix static method
Implementation
static Result<int, String> netmask_to_prefix(BigInt nm, int bits) {
var prefix = 0;
var addr = nm;
var in_host_part = true;
final two = BigInt.from(2);
for (var i = 0; i < bits; i++) {
final bit = addr % two;
if (in_host_part && bit == BigInt.zero) {
prefix = prefix + 1;
} else if (in_host_part && bit == BigInt.one) {
in_host_part = false;
} else if (!in_host_part && bit == BigInt.zero) {
return Result.error("this is not a net mask ${nm}");
}
addr = addr >> 1;
}
return Result.ok(bits - prefix);
}