]> gitweb.michael.orlitzky.com - hath.git/blobdiff - src/Octet.hs
Bump the version number to 0.0.4 in hath.cabal.
[hath.git] / src / Octet.hs
index 78413e619bf3035b33639aa78bf962d6ca5fea81..531d4d071f051e0124e57fa3417e167e8cb70542 100644 (file)
@@ -78,6 +78,36 @@ instance Maskable Octet where
   apply_mask oct _ _ = oct
 
 
+instance Ord Octet where
+  (Octet x1 x2 x3 x4 x5 x6 x7 x8) <= (Octet y1 y2 y3 y4 y5 y6 y7 y8)
+    | x1 > y1 = False
+    | x2 > y2 = False
+    | x3 > y3 = False
+    | x4 > y4 = False
+    | x5 > y5 = False
+    | x6 > y6 = False
+    | x7 > y7 = False
+    | x8 > y8 = False
+    | otherwise = True
+
+
+instance Bounded Octet where
+  -- | The octet with the least possible value.
+  minBound =
+    Octet B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero
+
+  -- | The octet with the greatest possible value.
+  maxBound =
+    Octet B.One B.One B.One B.One B.One B.One B.One B.One
+
+
+instance Enum Octet where
+  -- We're supposed to throw a runtime error if you call (succ
+  -- maxBound), so the fromJust here doesn't introduce any additional
+  -- badness.
+  toEnum = fromJust . octet_from_int
+  fromEnum = octet_to_int
+
 -- | Convert each bit to its integer value, and multiply by the
 --   appropriate power of two. Sum them up, and we should get an integer
 --   between 0 and 255.
@@ -116,18 +146,6 @@ octet_from_string s =
     x:_ -> octet_from_int (fst x)
 
 
--- | The octet with the least possible value.
-min_octet :: Octet
-min_octet =
-  Octet B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero B.Zero
-
-
--- | The octet with the greatest possible value.
-max_octet :: Octet
-max_octet =
-  Octet B.One B.One B.One B.One B.One B.One B.One B.One
-
-
 
 -- HUnit Tests
 test_octet_from_int1 :: Test