diff options
Diffstat (limited to 'tests/Shared.hs')
-rw-r--r-- | tests/Shared.hs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/Shared.hs b/tests/Shared.hs new file mode 100644 index 00000000..e0e5268c --- /dev/null +++ b/tests/Shared.hs | |||
@@ -0,0 +1,50 @@ | |||
1 | {-# LANGUAGE OverloadedStrings #-} | ||
2 | module Shared | ||
3 | (echoM, echoBytes, unitM, swapM, reverseM, shiftR | ||
4 | ) where | ||
5 | |||
6 | import Data.ByteString (ByteString) | ||
7 | import Remote.KRPC | ||
8 | |||
9 | unitM :: Method () () | ||
10 | unitM = method "unit" [] [] | ||
11 | |||
12 | echoM :: Method Int Int | ||
13 | echoM = method "echo" ["x"] ["x"] | ||
14 | |||
15 | echoBytes :: Method ByteString ByteString | ||
16 | echoBytes = method "echoBytes" ["x"] ["x"] | ||
17 | |||
18 | reverseM :: Method [Int] [Int] | ||
19 | reverseM = method "reverse" ["xs"] ["ys"] | ||
20 | |||
21 | swapM :: Method (Int, Int) (Int, Int) | ||
22 | swapM = method "swap" ["x", "y"] ["b", "a"] | ||
23 | |||
24 | shiftR :: Method ((), Int, [Int]) ([Int], (), Int) | ||
25 | shiftR = method "shiftR" ["x", "y", "z"] ["a", "b", "c"] | ||
26 | |||
27 | |||
28 | |||
29 | {- | ||
30 | type NodeId = Int | ||
31 | type InfoHashe = Int | ||
32 | type NodeAddr = Int | ||
33 | type Token = Int | ||
34 | type | ||
35 | |||
36 | ping :: Method NodeId NodeId | ||
37 | ping = method "ping" ["id"] ["id"] | ||
38 | |||
39 | find_node :: Method (NodeId, NodeId) (NodeId, NodeAddr) | ||
40 | find_node = method "find_node" ["id", "target"] ["id", "nodes"] | ||
41 | |||
42 | get_peers :: Method (NodeId :*: InfoHash) (NodeId, Token, NodeAddr :|: NodeAddr) | ||
43 | get_peers = method "get_peers" | ||
44 | ("id", "target") | ||
45 | ("id", "token", view ("values" :|: "nodes")) | ||
46 | view :: BEncodable -> Maybe BEncodable | ||
47 | view = undefined | ||
48 | announce_peer :: Method (NodeId, InfoHash, PortNumber, Token) NodeId | ||
49 | announce_peer = undefined | ||
50 | -} \ No newline at end of file | ||