_site/cover/msmp_packet_error.COVER.html

1 %% Copyright (c) 2023 Peter Morgan <peter.james.morgan@gmail.com>
2 %%
3 %% Licensed under the Apache License, Version 2.0 (the "License");
4 %% you may not use this file except in compliance with the License.
5 %% You may obtain a copy of the License at
6 %%
7 %% http://www.apache.org/licenses/LICENSE-2.0
8 %%
9 %% Unless required by applicable law or agreed to in writing, software
10 %% distributed under the License is distributed on an "AS IS" BASIS,
11 %% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 %% See the License for the specific language governing permissions and
13 %% limitations under the License.
14
15
16 -module(msmp_packet_error).
17
18
19 -export([decode/1]).
20 -import(scran_bytes, [tag/1]).
21 -import(scran_combinator, [condition/2]).
22 -import(scran_combinator, [value/2]).
23 -import(scran_result, [into_map/1]).
24 -import(scran_result, [kv/2]).
25 -import(scran_sequence, [sequence/1]).
26
27
28 decode(ClientFlags) ->
29 3 fun
30 (Input) ->
31 3 (into_map(
32 sequence(
33 [kv(action, value(error, tag(<<16#ff>>))),
34 kv(error_code, msmp_integer_fixed:decode(2)),
35 condition(
36 maps:get(protocol_41, ClientFlags),
37 sequence(
38 [kv(sql_state_marker, msmp_string_fixed:decode(1)),
39 kv(sql_state, msmp_string_fixed:decode(5))])),
40 kv(error_message, msmp_string_rest_of_packet:decode())])))(Input)
41 end.
Line Hits Source