%%% Copyright (c) 2015, NORDUnet A/S. %%% See LICENSE for licensing information. -module(tlv). -export([encode/2, decode/1]). -spec encode(binary(), binary()) -> binary(). encode(Type, Value) -> 4 = byte_size(Type), % FIXME: make Type a 4 octet binary Len = byte_size(Value) + 8, <>. -spec decode(binary()) -> {binary(), binary(), binary()}. decode(Data) -> <> = Data, Length = TotalLength - 8, <> = Rest1, <> = Rest2, {Type, Value, Rest3}. %%%%%%%%%%%%%%%%%%%% -include_lib("eunit/include/eunit.hrl"). -define(TESTDATA1, {<<"DATA">>, <<"some data">>}). -define(TESTDATA2, {<<"DAT2">>, <<"some other data">>}). the_test_() -> {setup, fun() -> [?TESTDATA1, ?TESTDATA2] end, fun(_) -> ok end, fun(TestVectors) -> [?_assertEqual({T, V, <<>>}, decode(encode(T, V))) || {T, V} <- TestVectors] end}.