From 663b47b5aab9c967c82c6b0678f5bb5e10d93fc4 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Fri, 20 Dec 2013 00:34:22 +0400 Subject: Add default method for KRPC class --- src/Network/KRPC/Method.hs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/Network') diff --git a/src/Network/KRPC/Method.hs b/src/Network/KRPC/Method.hs index 54aa8ef0..f2461a1b 100644 --- a/src/Network/KRPC/Method.hs +++ b/src/Network/KRPC/Method.hs @@ -2,14 +2,17 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE DefaultSignatures #-} module Network.KRPC.Method ( Method (..) , KRPC (..) ) where import Data.BEncode (BEncode) +import Data.Char import Data.Monoid +import Data.List as L import Data.String import Data.Typeable import Network.KRPC.Message @@ -59,3 +62,8 @@ showsMethod (Method name) = -- @ class (BEncode req, BEncode resp) => KRPC req resp | req -> resp where method :: Method req resp + + default method :: Typeable req => Method req resp + method = Method $ fromString $ L.map toLower $ show $ typeOf hole + where + hole = error "krpc.method: impossible" :: req -- cgit v1.2.3