diff options
Diffstat (limited to 'src/Data/BEncode.hs')
-rw-r--r-- | src/Data/BEncode.hs | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/src/Data/BEncode.hs b/src/Data/BEncode.hs index 9da898f..eda5404 100644 --- a/src/Data/BEncode.hs +++ b/src/Data/BEncode.hs | |||
@@ -385,7 +385,6 @@ instance BEncodable BDict where | |||
385 | --------------------------------------------------------------------} | 385 | --------------------------------------------------------------------} |
386 | 386 | ||
387 | instance BEncodable Int where | 387 | instance BEncodable Int where |
388 | {-# SPECIALIZE instance BEncodable Int #-} | ||
389 | toBEncode = BInteger . fromIntegral | 388 | toBEncode = BInteger . fromIntegral |
390 | {-# INLINE toBEncode #-} | 389 | {-# INLINE toBEncode #-} |
391 | 390 | ||
@@ -431,7 +430,7 @@ instance BEncodable a => BEncodable (Map ByteString a) where | |||
431 | {-# INLINE fromBEncode #-} | 430 | {-# INLINE fromBEncode #-} |
432 | 431 | ||
433 | instance (Eq a, BEncodable a) => BEncodable (Set a) where | 432 | instance (Eq a, BEncodable a) => BEncodable (Set a) where |
434 | {-# SPECIALIZE instance (Eq a, BEncodable a) => BEncodable (Set a) #-} | 433 | {-# SPECIALIZE instance BEncodable (Set BEncode) #-} |
435 | toBEncode = BList . map toBEncode . S.toAscList | 434 | toBEncode = BList . map toBEncode . S.toAscList |
436 | {-# INLINE toBEncode #-} | 435 | {-# INLINE toBEncode #-} |
437 | 436 | ||
@@ -440,9 +439,8 @@ instance (Eq a, BEncodable a) => BEncodable (Set a) where | |||
440 | {-# INLINE fromBEncode #-} | 439 | {-# INLINE fromBEncode #-} |
441 | 440 | ||
442 | instance BEncodable Version where | 441 | instance BEncodable Version where |
443 | {-# SPECIALIZE instance BEncodable Version #-} | ||
444 | {-# INLINE toBEncode #-} | ||
445 | toBEncode = toBEncode . BC.pack . showVersion | 442 | toBEncode = toBEncode . BC.pack . showVersion |
443 | {-# INLINE toBEncode #-} | ||
446 | 444 | ||
447 | fromBEncode (BString bs) | 445 | fromBEncode (BString bs) |
448 | | [(v, _)] <- ReadP.readP_to_S parseVersion (BC.unpack bs) | 446 | | [(v, _)] <- ReadP.readP_to_S parseVersion (BC.unpack bs) |
@@ -455,7 +453,6 @@ instance BEncodable Version where | |||
455 | --------------------------------------------------------------------} | 453 | --------------------------------------------------------------------} |
456 | 454 | ||
457 | instance BEncodable () where | 455 | instance BEncodable () where |
458 | {-# SPECIALIZE instance BEncodable () #-} | ||
459 | toBEncode () = BList [] | 456 | toBEncode () = BList [] |
460 | {-# INLINE toBEncode #-} | 457 | {-# INLINE toBEncode #-} |
461 | 458 | ||
@@ -464,7 +461,9 @@ instance BEncodable () where | |||
464 | {-# INLINE fromBEncode #-} | 461 | {-# INLINE fromBEncode #-} |
465 | 462 | ||
466 | instance (BEncodable a, BEncodable b) => BEncodable (a, b) where | 463 | instance (BEncodable a, BEncodable b) => BEncodable (a, b) where |
467 | {-# SPECIALIZE instance (BEncodable a, BEncodable b) => BEncodable (a, b) #-} | 464 | {-# SPECIALIZE instance (BEncodable b) => BEncodable (BEncode, b) #-} |
465 | {-# SPECIALIZE instance (BEncodable a) => BEncodable (a, BEncode) #-} | ||
466 | {-# SPECIALIZE instance BEncodable (BEncode, BEncode) #-} | ||
468 | toBEncode (a, b) = BList [toBEncode a, toBEncode b] | 467 | toBEncode (a, b) = BList [toBEncode a, toBEncode b] |
469 | {-# INLINE toBEncode #-} | 468 | {-# INLINE toBEncode #-} |
470 | 469 | ||
@@ -473,10 +472,8 @@ instance (BEncodable a, BEncodable b) => BEncodable (a, b) where | |||
473 | {-# INLINE fromBEncode #-} | 472 | {-# INLINE fromBEncode #-} |
474 | 473 | ||
475 | instance (BEncodable a, BEncodable b, BEncodable c) => BEncodable (a, b, c) where | 474 | instance (BEncodable a, BEncodable b, BEncodable c) => BEncodable (a, b, c) where |
476 | {-# SPECIALIZE instance (BEncodable a, BEncodable b, BEncodable c) | ||
477 | => BEncodable (a, b, c) #-} | ||
478 | {-# INLINE toBEncode #-} | ||
479 | toBEncode (a, b, c) = BList [toBEncode a, toBEncode b, toBEncode c] | 475 | toBEncode (a, b, c) = BList [toBEncode a, toBEncode b, toBEncode c] |
476 | {-# INLINE toBEncode #-} | ||
480 | 477 | ||
481 | fromBEncode (BList [a, b, c]) = | 478 | fromBEncode (BList [a, b, c]) = |
482 | (,,) <$> fromBEncode a <*> fromBEncode b <*> fromBEncode c | 479 | (,,) <$> fromBEncode a <*> fromBEncode b <*> fromBEncode c |
@@ -485,12 +482,10 @@ instance (BEncodable a, BEncodable b, BEncodable c) => BEncodable (a, b, c) wher | |||
485 | 482 | ||
486 | instance (BEncodable a, BEncodable b, BEncodable c, BEncodable d) | 483 | instance (BEncodable a, BEncodable b, BEncodable c, BEncodable d) |
487 | => BEncodable (a, b, c, d) where | 484 | => BEncodable (a, b, c, d) where |
488 | {-# SPECIALIZE instance (BEncodable a, BEncodable b, BEncodable c, BEncodable d) | ||
489 | => BEncodable (a, b, c, d) #-} | ||
490 | {-# INLINE toBEncode #-} | ||
491 | toBEncode (a, b, c, d) = BList [ toBEncode a, toBEncode b | 485 | toBEncode (a, b, c, d) = BList [ toBEncode a, toBEncode b |
492 | , toBEncode c, toBEncode d | 486 | , toBEncode c, toBEncode d |
493 | ] | 487 | ] |
488 | {-# INLINE toBEncode #-} | ||
494 | 489 | ||
495 | fromBEncode (BList [a, b, c, d]) = | 490 | fromBEncode (BList [a, b, c, d]) = |
496 | (,,,) <$> fromBEncode a <*> fromBEncode b | 491 | (,,,) <$> fromBEncode a <*> fromBEncode b |
@@ -499,16 +494,12 @@ instance (BEncodable a, BEncodable b, BEncodable c, BEncodable d) | |||
499 | {-# INLINE fromBEncode #-} | 494 | {-# INLINE fromBEncode #-} |
500 | 495 | ||
501 | instance (BEncodable a, BEncodable b, BEncodable c, BEncodable d, BEncodable e) | 496 | instance (BEncodable a, BEncodable b, BEncodable c, BEncodable d, BEncodable e) |
502 | => BEncodable (a, b, c, d, e) where | 497 | => BEncodable (a, b, c, d, e) where |
503 | {-# SPECIALIZE instance ( BEncodable a, BEncodable b | ||
504 | , BEncodable c, BEncodable d | ||
505 | , BEncodable e) | ||
506 | => BEncodable (a, b, c, d, e) #-} | ||
507 | {-# INLINE toBEncode #-} | ||
508 | toBEncode (a, b, c, d, e) = BList [ toBEncode a, toBEncode b | 498 | toBEncode (a, b, c, d, e) = BList [ toBEncode a, toBEncode b |
509 | , toBEncode c, toBEncode d | 499 | , toBEncode c, toBEncode d |
510 | , toBEncode e | 500 | , toBEncode e |
511 | ] | 501 | ] |
502 | {-# INLINE toBEncode #-} | ||
512 | 503 | ||
513 | fromBEncode (BList [a, b, c, d, e]) = | 504 | fromBEncode (BList [a, b, c, d, e]) = |
514 | (,,,,) <$> fromBEncode a <*> fromBEncode b | 505 | (,,,,) <$> fromBEncode a <*> fromBEncode b |
@@ -759,35 +750,30 @@ ppBEncode (BDict d) | |||
759 | --------------------------------------------------------------------} | 750 | --------------------------------------------------------------------} |
760 | 751 | ||
761 | instance BEncodable Word8 where | 752 | instance BEncodable Word8 where |
762 | {-# SPECIALIZE instance BEncodable Word8 #-} | ||
763 | toBEncode = toBEncode . (fromIntegral :: Word8 -> Word64) | 753 | toBEncode = toBEncode . (fromIntegral :: Word8 -> Word64) |
764 | {-# INLINE toBEncode #-} | 754 | {-# INLINE toBEncode #-} |
765 | fromBEncode b = (fromIntegral :: Word64 -> Word8) <$> fromBEncode b | 755 | fromBEncode b = (fromIntegral :: Word64 -> Word8) <$> fromBEncode b |
766 | {-# INLINE fromBEncode #-} | 756 | {-# INLINE fromBEncode #-} |
767 | 757 | ||
768 | instance BEncodable Word16 where | 758 | instance BEncodable Word16 where |
769 | {-# SPECIALIZE instance BEncodable Word16 #-} | ||
770 | toBEncode = toBEncode . (fromIntegral :: Word16 -> Word64) | 759 | toBEncode = toBEncode . (fromIntegral :: Word16 -> Word64) |
771 | {-# INLINE toBEncode #-} | 760 | {-# INLINE toBEncode #-} |
772 | fromBEncode b = (fromIntegral :: Word64 -> Word16) <$> fromBEncode b | 761 | fromBEncode b = (fromIntegral :: Word64 -> Word16) <$> fromBEncode b |
773 | {-# INLINE fromBEncode #-} | 762 | {-# INLINE fromBEncode #-} |
774 | 763 | ||
775 | instance BEncodable Word32 where | 764 | instance BEncodable Word32 where |
776 | {-# SPECIALIZE instance BEncodable Word32 #-} | ||
777 | toBEncode = toBEncode . (fromIntegral :: Word32 -> Word64) | 765 | toBEncode = toBEncode . (fromIntegral :: Word32 -> Word64) |
778 | {-# INLINE toBEncode #-} | 766 | {-# INLINE toBEncode #-} |
779 | fromBEncode b = (fromIntegral :: Word64 -> Word32) <$> fromBEncode b | 767 | fromBEncode b = (fromIntegral :: Word64 -> Word32) <$> fromBEncode b |
780 | {-# INLINE fromBEncode #-} | 768 | {-# INLINE fromBEncode #-} |
781 | 769 | ||
782 | instance BEncodable Word64 where | 770 | instance BEncodable Word64 where |
783 | {-# SPECIALIZE instance BEncodable Word64 #-} | ||
784 | toBEncode = toBEncode . (fromIntegral :: Word64 -> Int) | 771 | toBEncode = toBEncode . (fromIntegral :: Word64 -> Int) |
785 | {-# INLINE toBEncode #-} | 772 | {-# INLINE toBEncode #-} |
786 | fromBEncode b = (fromIntegral :: Int -> Word64) <$> fromBEncode b | 773 | fromBEncode b = (fromIntegral :: Int -> Word64) <$> fromBEncode b |
787 | {-# INLINE fromBEncode #-} | 774 | {-# INLINE fromBEncode #-} |
788 | 775 | ||
789 | instance BEncodable Word where | 776 | instance BEncodable Word where |
790 | {-# SPECIALIZE instance BEncodable Word #-} | ||
791 | toBEncode = toBEncode . (fromIntegral :: Word -> Int) | 777 | toBEncode = toBEncode . (fromIntegral :: Word -> Int) |
792 | {-# INLINE toBEncode #-} | 778 | {-# INLINE toBEncode #-} |
793 | fromBEncode b = (fromIntegral :: Int -> Word) <$> fromBEncode b | 779 | fromBEncode b = (fromIntegral :: Int -> Word) <$> fromBEncode b |