Packages
mongodb_driver
1.6.4
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.6
1.5.5
1.5.4
1.5.2
1.5.1
1.5.0
1.4.1
1.4.0
1.2.1
1.2.0
1.1.0
1.0.3
1.0.2
1.0.1
1.0.0
0.9.2
0.9.1
0.9.0
0.9.0-rc.1
0.9.0-rc.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
The MongoDB driver for Elixir
Current section
Files
Jump to
Current section
Files
lib/mongo/write_concern.ex
defmodule Mongo.WriteConcern do
@moduledoc false
import Keywords
@spec write_concern(keyword) :: nil | map
def write_concern(opts) do
%{
w: Keyword.get(opts, :w),
j: Keyword.get(opts, :j),
wtimeout: Keyword.get(opts, :wtimeout)
}
|> filter_nils()
|> filter_empty()
end
@spec filter_empty(map) :: nil | map
defp filter_empty(%{} = map) when map == %{}, do: nil
defp filter_empty(%{} = map), do: map
@spec acknowledged?(nil | keyword | map) :: boolean
def acknowledged?(nil), do: true
def acknowledged?(%{} = write_concern), do: Map.get(write_concern, :w) != 0
def acknowledged?(write_concern) when is_list(write_concern), do: Keyword.get(write_concern, :w) != 0
end