summaryrefslogtreecommitdiff
path: root/src/Network/BitTorrent/Extension.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Network/BitTorrent/Extension.hs')
-rw-r--r--src/Network/BitTorrent/Extension.hs9
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 #-}
12module Network.BitTorrent.Extension 13module 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
17import Data.Bits 18import Data.Bits
18import Data.List
19import Data.Word 19import Data.Word
20import Text.PrettyPrint
20 21
21 22
22type Capabilities = Word64 23type Capabilities = Word64
23 24
24ppCaps :: Capabilities -> String 25ppCaps :: Capabilities -> Doc
25ppCaps = intercalate ", " . map ppExtension . decodeExts 26ppCaps = hcat . punctuate ", " . map ppExtension . decodeExts
26 27
27defaultCaps :: Capabilities 28defaultCaps :: Capabilities
28defaultCaps = 0 29defaultCaps = 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
41ppExtension :: Extension -> String 42ppExtension :: Extension -> Doc
42ppExtension ExtDHT = "DHT" 43ppExtension ExtDHT = "DHT"
43ppExtension ExtFast = "Fast Extension" 44ppExtension ExtFast = "Fast Extension"
44 45