Packages
krug
1.1.48
2.0.36
2.0.35
2.0.34
2.0.33
2.0.32
2.0.31
2.0.30
2.0.29
2.0.27
2.0.26
2.0.25
2.0.24
2.0.23
2.0.22
2.0.20
2.0.19
2.0.18
2.0.17
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.1
2.0.0
1.1.53
1.1.52
1.1.50
1.1.49
1.1.48
1.1.47
1.1.46
1.1.45
1.1.44
1.1.43
1.1.42
1.1.41
1.1.40
1.1.39
1.1.38
1.1.37
1.1.36
1.1.35
1.1.34
1.1.33
1.1.32
1.1.31
1.1.30
1.1.29
1.1.28
1.1.27
1.1.26
1.1.25
1.1.24
1.1.23
1.1.22
1.1.21
1.1.20
1.1.19
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.12
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.0
A Utilitary package functionalities modules for improve a secure performatic development.
Current section
Files
Jump to
Current section
Files
lib/krug/struct/keypar.list.ex
defmodule Krug.KeyParList do
@moduledoc """
Module to handle list of single maps of key/value entries.
"""
alias Krug.MapUtil
@doc """
Obtains a value respective to a ```key``` in keypar list.
If none of elements contains the key received, return nil.
"""
def get(key,list) do
cond do
(nil == list or Enum.empty?(list)) -> nil
true -> get2(key,list)
end
end
@doc false
defp get2(key,list) do
element = list |> hd()
cond do
(element |> MapUtil.get(:key) == key)
-> element |> MapUtil.get(:value)
true -> get(key,list |> tl())
end
end
@doc """
Insert a key/value entry in a list. Creates a new entry if not exists
a respective key. Otherwise replace the existing key/value entry.
"""
def put(key,value,list) do
cond do
(nil == list or Enum.empty?(list)) -> [%{key: key, value: value}]
true -> put_not_empty(key,value,list,0)
end
end
@doc false
defp put_not_empty(key,value,list,counter) do
cond do
(list |> Enum.at(counter) |> MapUtil.get(:key) == key)
-> List.replace_at(list,counter,%{key: key, value: value})
true -> put_not_empty(key,value,list,counter + 1)
end
end
end