diff options
| author | tarka | 2006-05-14 02:49:45 -0700 |
|---|---|---|
| committer | tarka | 2006-05-14 02:49:45 -0700 |
| commit | 8f58c5aa02fa992d4eb6676367f0f5a371e5d3e2 (patch) | |
| tree | fb9d520f473717ac3d888a1cdc33f0d9f8ad5f31 /bencode.erl | |
| parent | 0d39716d6493ab31780dc7bba9d376bd7218f233 (diff) | |
Add encoding for strings, lists and integers, and appropriate tests.
Diffstat (limited to 'bencode.erl')
| -rw-r--r-- | bencode.erl | 12 |
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 %% %% %% %% %% %% %% %% |
