_site/cover/msmp_column_definition_flags.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_column_definition_flags).
17
18
19 -export([decode/1]).
20 -export([encode/1]).
21 -include_lib("kernel/include/logger.hrl").
22 -on_load(on_load/0).
23
24
25 decode(Flags) ->
26 3 maps:map(
27 fun
28 (_, Mask) ->
29 51 Flags band Mask == Mask
30 end,
31 flags()).
32
33
34 encode(Flags) ->
35
:-(
lists:foldl(
36 fun
37 (Flag, A) ->
38
:-(
{ok, Mask} = maps:find(Flag, flags()),
39
:-(
A bor Mask
40 end,
41 0,
42 Flags).
43
44
45 flags() ->
46 3 persistent_term:get(?MODULE).
47
48
49 on_load() ->
50 1 persistent_term:put(
51 ?MODULE,
52 maps:from_list(
53 msmp:priv_consult("column-definition-flag.terms"))).
Line Hits Source