summaryrefslogtreecommitdiff
path: root/bencode.erl
diff options
context:
space:
mode:
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 %% %% %% %% %% %% %% %%