Skip to content

Commit 3ad8bc6

Browse files
Fix member? implementation in Table.Mapper (#11)
1 parent 9505373 commit 3ad8bc6

2 files changed

Lines changed: 10 additions & 8 deletions

File tree

lib/table/mapper.ex

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,10 @@ defmodule Table.Mapper do
2222
Enumerable.count(proxy.enumerable)
2323
end
2424

25-
def member?(proxy, element) do
26-
# The mapping is not necessarily reversible, so we fall
27-
# back to a linear search. For enumerables representing
28-
# data entries member? would generally be linear anyway
29-
Enum.any?(proxy.enumerable, fn original ->
30-
proxy.mapper.(original) == element
31-
end)
32-
end
25+
# The mapping is not necessarily reversible, so we fall
26+
# back to a linear search. For enumerables representing
27+
# data entries member? would generally be linear anyway
28+
def member?(_proxy, _element), do: {:error, __MODULE__}
3329

3430
def reduce(proxy, acc, fun) do
3531
Enumerable.reduce(proxy.enumerable, acc, fn original, acc ->

test/mapper_test.exs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,10 @@ defmodule Table.MapperTest do
1515
enumerable = 1..10 |> Stream.map(& &1) |> Mapper.map(fn x -> x * x end)
1616
assert Enum.slice(enumerable, 4..6) == [25, 36, 49]
1717
end
18+
19+
test "member?" do
20+
enumerable = 1..10 |> Mapper.map(fn x -> x * x end)
21+
assert Enum.member?(enumerable, 36) == true
22+
assert Enum.member?(enumerable, 37) == false
23+
end
1824
end

0 commit comments

Comments
 (0)