X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2FMaskable.hs;h=d05ff6ffbaf63b9695206f596bdd1bc154afc1e4;hb=e8b41784eaa68049f7a7354916c9c9920050db70;hp=9e72b8e211d04690242b93cd794195459fd4d4ba;hpb=041d33c0e5ac9c0e9733f42cd96aa2fba07a043f;p=hath.git diff --git a/src/Maskable.hs b/src/Maskable.hs index 9e72b8e..d05ff6f 100644 --- a/src/Maskable.hs +++ b/src/Maskable.hs @@ -3,19 +3,20 @@ module Maskable where import Bit import Maskbits --- Any string of bits should be maskable by some number of netmask --- bits. The convention of the Maskable typeclass follows CIDR --- notation, where the number of mask bits (the number after the --- slash) denotes how many bits are reserved for the network. +-- | Any string of bits should be maskable by some number of netmask +-- bits. The convention of the Maskable typeclass follows CIDR +-- notation, where the number of mask bits (the number after the +-- slash) denotes how many bits are reserved for the network. -- --- So, a mask of 32 applied to an address of 127.0.0.1 will again --- return 127.0.0.1. Likewise, 31 mask bits applied to 127.0.0.1 --- should return 127.0.0.0, since 127.0.0.1/31 matches both 127.0.0.0 --- and 127.0.0.1. In this case, the final '0' or '1' is the host --- part of the address. The '127.0.0' is thus the network part. +-- So, a mask of 32 applied to an address of 127.0.0.1 will again +-- return 127.0.0.1. Likewise, 31 mask bits applied to 127.0.0.1 +-- should return 127.0.0.0, since 127.0.0.1/31 matches both +-- 127.0.0.0 and 127.0.0.1. In this case, the final '0' or '1' is +-- the host part of the address. The '127.0.0' is thus the network +-- part. +-- +-- The Bit argument allows us to specify whether the host bits +-- should be replaced with either Zero or One. -- --- The Bit argument allows us to specify whether the host bits --- should be replaced with either Zero or One. class Maskable a where apply_mask :: a -> Maskbits -> Bit -> a -