diff options
Diffstat (limited to 'src/Network/BitTorrent/Extension.hs')
-rw-r--r-- | src/Network/BitTorrent/Extension.hs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/Network/BitTorrent/Extension.hs b/src/Network/BitTorrent/Extension.hs index e37f3afb..4b71f91f 100644 --- a/src/Network/BitTorrent/Extension.hs +++ b/src/Network/BitTorrent/Extension.hs | |||
@@ -9,20 +9,21 @@ | |||
9 | -- | 9 | -- |
10 | -- > See http://www.bittorrent.org/beps/bep_0004.html | 10 | -- > See http://www.bittorrent.org/beps/bep_0004.html |
11 | -- | 11 | -- |
12 | {-# LANGUAGE OverloadedStrings #-} | ||
12 | module Network.BitTorrent.Extension | 13 | module Network.BitTorrent.Extension |
13 | ( Capabilities, ppCaps, defaultCaps, enabledCaps | 14 | ( Capabilities, ppCaps, defaultCaps, enabledCaps |
14 | , Extension, ppExtension, encodeExts, decodeExts | 15 | , Extension, ppExtension, encodeExts, decodeExts |
15 | ) where | 16 | ) where |
16 | 17 | ||
17 | import Data.Bits | 18 | import Data.Bits |
18 | import Data.List | ||
19 | import Data.Word | 19 | import Data.Word |
20 | import Text.PrettyPrint | ||
20 | 21 | ||
21 | 22 | ||
22 | type Capabilities = Word64 | 23 | type Capabilities = Word64 |
23 | 24 | ||
24 | ppCaps :: Capabilities -> String | 25 | ppCaps :: Capabilities -> Doc |
25 | ppCaps = intercalate ", " . map ppExtension . decodeExts | 26 | ppCaps = hcat . punctuate ", " . map ppExtension . decodeExts |
26 | 27 | ||
27 | defaultCaps :: Capabilities | 28 | defaultCaps :: Capabilities |
28 | defaultCaps = 0 | 29 | defaultCaps = 0 |
@@ -38,7 +39,7 @@ data Extension = ExtDHT -- ^ BEP 5 | |||
38 | | ExtFast -- ^ BEP 6 | 39 | | ExtFast -- ^ BEP 6 |
39 | deriving (Show, Eq, Ord, Enum, Bounded) | 40 | deriving (Show, Eq, Ord, Enum, Bounded) |
40 | 41 | ||
41 | ppExtension :: Extension -> String | 42 | ppExtension :: Extension -> Doc |
42 | ppExtension ExtDHT = "DHT" | 43 | ppExtension ExtDHT = "DHT" |
43 | ppExtension ExtFast = "Fast Extension" | 44 | ppExtension ExtFast = "Fast Extension" |
44 | 45 | ||