From b83c5d53be21c03004ebb65d1dc9fe1f841a2a3c Mon Sep 17 00:00:00 2001 From: Daniel Gröber Date: Sun, 1 Dec 2013 21:12:40 +0100 Subject: Fix building with aeson >= 0.6.2.0 deriveJSON now takes an Option record instead of a single function. It might be nicer to define a function that takes the fieldLabelModifier function rather than doing it inline everywhere but I didn't know where a good place to put that would be. --- src/Data/Torrent/Block.hs | 2 +- src/Data/Torrent/Layout.hs | 4 ++-- src/Data/Torrent/Piece.hs | 4 ++-- src/Data/Torrent/Progress.hs | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Data/Torrent') diff --git a/src/Data/Torrent/Block.hs b/src/Data/Torrent/Block.hs index 37889a7a..fd12b7a0 100644 --- a/src/Data/Torrent/Block.hs +++ b/src/Data/Torrent/Block.hs @@ -97,7 +97,7 @@ data BlockIx = BlockIx { , ixLength :: {-# UNPACK #-} !BlockSize } deriving (Show, Eq) -$(deriveJSON (L.map toLower . L.dropWhile isLower) ''BlockIx) +$(deriveJSON defaultOptions { fieldLabelModifier = (L.map toLower . L.dropWhile isLower) } ''BlockIx) getInt :: S.Get Int getInt = fromIntegral <$> S.getWord32be diff --git a/src/Data/Torrent/Layout.hs b/src/Data/Torrent/Layout.hs index 8f35772d..d39c6c04 100644 --- a/src/Data/Torrent/Layout.hs +++ b/src/Data/Torrent/Layout.hs @@ -125,7 +125,7 @@ data FileInfo a = FileInfo { , Functor, Foldable ) -$(deriveJSON (L.map Char.toLower . L.dropWhile isLower) ''FileInfo) +$(deriveJSON defaultOptions { fieldLabelModifier = (L.map Char.toLower . L.dropWhile isLower) } ''FileInfo) makeLensesFor [ ("fiLength", "fileLength") @@ -210,7 +210,7 @@ data LayoutInfo , liDirName :: !ByteString } deriving (Show, Read, Eq, Typeable) -$(deriveJSON (L.map Char.toLower . L.dropWhile isLower) ''LayoutInfo) +$(deriveJSON defaultOptions { fieldLabelModifier = (L.map Char.toLower . L.dropWhile isLower) } ''LayoutInfo) makeLensesFor [ ("liFile" , "singleFile" ) diff --git a/src/Data/Torrent/Piece.hs b/src/Data/Torrent/Piece.hs index 7eb4e3d5..f7c6257b 100644 --- a/src/Data/Torrent/Piece.hs +++ b/src/Data/Torrent/Piece.hs @@ -117,7 +117,7 @@ data Piece a = Piece , pieceData :: !a } deriving (Show, Read, Eq, Typeable) -$(deriveJSON (L.map toLower . L.dropWhile isLower) ''Piece) +$(deriveJSON defaultOptions { fieldLabelModifier = (L.map toLower . L.dropWhile isLower) } ''Piece) instance NFData (Piece a) @@ -160,7 +160,7 @@ data PieceInfo = PieceInfo -- ^ Concatenation of all 20-byte SHA1 hash values. } deriving (Show, Read, Eq, Typeable) -$(deriveJSON (L.map toLower . L.dropWhile isLower) ''PieceInfo) +$(deriveJSON defaultOptions { fieldLabelModifier = (L.map toLower . L.dropWhile isLower) } ''PieceInfo) -- | Number of bytes in each piece. makeLensesFor [("piPieceLength", "pieceLength")] ''PieceInfo diff --git a/src/Data/Torrent/Progress.hs b/src/Data/Torrent/Progress.hs index 1a4a68e2..34f8f299 100644 --- a/src/Data/Torrent/Progress.hs +++ b/src/Data/Torrent/Progress.hs @@ -62,7 +62,7 @@ data Progress = Progress } deriving (Show, Read, Eq) $(makeLenses ''Progress) -$(deriveJSON L.tail ''Progress) +$(deriveJSON defaultOptions { fieldLabelModifier = L.tail } ''Progress) -- | UDP tracker compatible encoding. instance Serialize Progress where -- cgit v1.2.3 From 5dc7a19e42da1ee1cc3570ca74a55c32d7d243e0 Mon Sep 17 00:00:00 2001 From: Daniel Gröber Date: Sun, 1 Dec 2013 21:19:35 +0100 Subject: Fix building with hashable >= 1.2 hashWithSalt is now the minimal implementation --- bittorrent.cabal | 2 +- src/Data/Torrent.hs | 4 ++-- src/Data/Torrent/InfoHash.hs | 4 ++-- src/Network/BitTorrent/Core/PeerId.hs | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/Data/Torrent') diff --git a/bittorrent.cabal b/bittorrent.cabal index 7f5a42ae..762bff01 100644 --- a/bittorrent.cabal +++ b/bittorrent.cabal @@ -113,7 +113,7 @@ library -- Hashing , cryptohash == 0.10.* - , hashable + , hashable >= 1.2 -- Codecs & Serialization , aeson >= 0.6.2.0 diff --git a/src/Data/Torrent.hs b/src/Data/Torrent.hs index 7469d621..ce919907 100644 --- a/src/Data/Torrent.hs +++ b/src/Data/Torrent.hs @@ -137,8 +137,8 @@ instance NFData InfoDict where rnf InfoDict {..} = rnf idLayoutInfo instance Hashable InfoDict where - hash = Hashable.hash . idInfoHash - {-# INLINE hash #-} + hashWithSalt = Hashable.hashUsing idInfoHash + {-# INLINE hashWithSalt #-} -- | Smart constructor: add a info hash to info dictionary. infoDictionary :: LayoutInfo -> PieceInfo -> Bool -> InfoDict diff --git a/src/Data/Torrent/InfoHash.hs b/src/Data/Torrent/InfoHash.hs index d840ac87..4d49fcb7 100644 --- a/src/Data/Torrent/InfoHash.hs +++ b/src/Data/Torrent/InfoHash.hs @@ -70,8 +70,8 @@ instance Default InfoHash where -- | Hash raw bytes. (no encoding) instance Hashable InfoHash where - hash (InfoHash ih) = Hashable.hash ih - {-# INLINE hash #-} + hashWithSalt s (InfoHash ih) = hashWithSalt s ih + {-# INLINE hashWithSalt #-} -- | Convert to\/from raw bencoded string. (no encoding) instance BEncode InfoHash where diff --git a/src/Network/BitTorrent/Core/PeerId.hs b/src/Network/BitTorrent/Core/PeerId.hs index 148f550d..1b4409a8 100644 --- a/src/Network/BitTorrent/Core/PeerId.hs +++ b/src/Network/BitTorrent/Core/PeerId.hs @@ -74,8 +74,8 @@ peerIdLen :: Int peerIdLen = 20 instance Hashable PeerId where - hash = hash . getPeerId - {-# INLINE hash #-} + hashWithSalt = hashUsing getPeerId + {-# INLINE hashWithSalt #-} instance Serialize PeerId where put = putByteString . getPeerId -- cgit v1.2.3