summaryrefslogtreecommitdiff
path: root/bencode.erl
diff options
context:
space:
mode:
authortarka2006-05-14 02:49:45 -0700
committertarka2006-05-14 02:49:45 -0700
commit8f58c5aa02fa992d4eb6676367f0f5a371e5d3e2 (patch)
treefb9d520f473717ac3d888a1cdc33f0d9f8ad5f31 /bencode.erl
parent0d39716d6493ab31780dc7bba9d376bd7218f233 (diff)
Add encoding for strings, lists and integers, and appropriate tests.
Diffstat (limited to 'bencode.erl')
-rw-r--r--bencode.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/bencode.erl b/bencode.erl
index fb8e9f3..a335ab9 100644
--- a/bencode.erl
+++ b/bencode.erl
@@ -7,8 +7,16 @@
%% %% %% %% %% %% %% %% Decoding %% %% %% %% %% %% %% %%
-bencode(Val) when is_integer(Val) ->
- "i" ++ integer_to_list(Val) ++ "e".
+bencode({int, Val}) ->
+ "i" ++ integer_to_list(Val) ++ "e";
+
+bencode({string, Val}) ->
+ integer_to_list(length(Val)) ++ ":" ++ Val;
+
+bencode({list, Val}) ->
+ Fun = fun(A) -> bencode(A) end,
+ "l" ++ lists:flatten(lists:map(Fun, Val)) ++ "e".
+
%% %% %% %% %% %% %% %% Decoding %% %% %% %% %% %% %% %%