class NetAddr::Mask32
Mask32 represents a 32-bit netmask.
def cmp(other)
* 0 if the two are equal
* 1 if this Mask128 is larger in capacity
cmp compares equality with another Mask32. Return:
def cmp(other) if (!other.kind_of?(Mask32)) raise ArgumentError, "Expected an Mask32 object for 'other' but got a #{other.class}." end if (self.prefix_len < other.prefix_len) return 1 elsif (self.prefix_len > other.prefix_len) return -1 end return 0 end
def extended()
def extended() Util.int_to_IPv4(@mask) end
def initialize(prefix_len)
Create a Mask32 from an Integer prefix length. Valid values are 0-32.
def initialize(prefix_len) if (!prefix_len.kind_of?(Integer)) raise ValidationError, "Expected an Integer for 'prefix_len' but got a #{prefix_len.class}." elsif ( (prefix_len < 0) || (prefix_len > 32) ) raise ValidationError, "#{prefix_len} must be in the range of 0-32." end @prefix_len = prefix_len @mask = NetAddr::F32 ^ (NetAddr::F32 >> @prefix_len) end
def len()
def len() if (self.prefix_len == 0) return 0 end return (self.mask ^ NetAddr::F32) + 1 # bit flip the netmask and add 1 end
def to_s()
def to_s() return "/#{@prefix_len}" end