Merge pull request 'Reduce notification nesting, add 'continue' result' (#3) from uw-msg-format-tweaks into master

Reviewed-on: #3
This commit is contained in:
Ulf Wiger 2025-04-10 17:15:58 +09:00
commit b7cf6375fe

View File

@ -150,7 +150,7 @@ decode(MsgBin, ?PROTOCOL_JSON, Vsn) ->
#{ <<"method">> := Method
, <<"params">> := Params } ->
%% JSON-RPC notification
#{ notification => #{ msg => validate(decode_msg_(Method, Params), Vsn) }};
#{ notification => validate(decode_msg_(Method, Params), Vsn) };
#{ <<"id">> := Id
, <<"result">> := Result } ->
#{ reply => #{ id => Id
@ -167,7 +167,7 @@ decode(MsgBin, ?PROTOCOL_JSON, Vsn) ->
encode(#{call := Req0}, P, V) ->
{Id, Req} = maps:take(id, Req0),
encode_request(Req, Id, P, V);
encode(#{notification := #{msg := Msg}}, P, V) ->
encode(#{notification := Msg}, P, V) ->
encode_msg(Msg, P, V);
encode(#{reply := Reply0}, P, V) when is_map(Reply0) ->
{Id, Reply} = maps:take(id, Reply0),
@ -204,7 +204,11 @@ encode_reply(Reply, Id, ?PROTOCOL_JSON, _Vsn) ->
ok ->
#{ <<"jsonrpc">> => <<"2.0">>
, <<"id">> => Id
, <<"result">> => <<"ok">> }
, <<"result">> => <<"ok">> };
continue ->
#{ <<"jsonrpc">> => <<"2.0">>
, <<"id">> => Id
, <<"result">> => <<"continue">> }
end,
json_encode(Msg).
@ -231,6 +235,7 @@ error_code(unknown_method ) -> -32601;
error_code(_ ) -> -32603. % internal error
decode_result(<<"ok">>, _) -> ok;
decode_result(<<"continue">>, _) -> continue;
decode_result(#{<<"connect_ack">> := #{ <<"protocol">> := P
, <<"version">> := V }}, Vsn) ->
Msg = #{connect_ack => #{ protocol => P