From 041db71992e912fd252bbb524e6fbe8dd074d582 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Sat, 28 Sep 2013 03:16:32 +0400 Subject: Add Int{8,16,32,64} instances. --- src/Data/BEncode.hs | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) (limited to 'src/Data/BEncode.hs') diff --git a/src/Data/BEncode.hs b/src/Data/BEncode.hs index 37c84c7..402e8b3 100644 --- a/src/Data/BEncode.hs +++ b/src/Data/BEncode.hs @@ -436,18 +436,45 @@ instance BEncodable Word where fromBEncode = fromBEncodeIntegral {-# INLINE fromBEncode #-} -{-------------------------------------------------------------------- --- Derived instances ---------------------------------------------------------------------} +instance BEncodable Int8 where + toBEncode = toBEncodeIntegral + {-# INLINE toBEncode #-} + + fromBEncode = fromBEncodeIntegral + {-# INLINE fromBEncode #-} + +instance BEncodable Int16 where + toBEncode = toBEncodeIntegral + {-# INLINE toBEncode #-} + + fromBEncode = fromBEncodeIntegral + {-# INLINE fromBEncode #-} + +instance BEncodable Int32 where + toBEncode = toBEncodeIntegral + {-# INLINE toBEncode #-} + + fromBEncode = fromBEncodeIntegral + {-# INLINE fromBEncode #-} + +instance BEncodable Int64 where + toBEncode = toBEncodeIntegral + {-# INLINE toBEncode #-} + + fromBEncode = fromBEncodeIntegral + {-# INLINE fromBEncode #-} instance BEncodable Int where - toBEncode = BInteger . fromIntegral + toBEncode = toBEncodeIntegral {-# INLINE toBEncode #-} - fromBEncode (BInteger i) = Right (fromIntegral i) - fromBEncode _ = decodingError "Int" + fromBEncode = fromBEncodeIntegral {-# INLINE fromBEncode #-} +{-------------------------------------------------------------------- +-- Derived instances +--------------------------------------------------------------------} + instance BEncodable Bool where toBEncode = toBEncode . fromEnum {-# INLINE toBEncode #-} -- cgit v1.2.3