Skip to content

Commit 51bc04b

Browse files
committed
replace hashdict with maps
1 parent 061dd60 commit 51bc04b

File tree

48 files changed

+242
-242
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+242
-242
lines changed

Diff for: code_samples/ch04/simple_todo.ex

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
defmodule TodoList do
2-
def new, do: HashDict.new
2+
def new, do: %{}
33

44
def add_entry(todo_list, date, title) do
5-
HashDict.update(
5+
Map.update(
66
todo_list,
77
date,
88
[title],
@@ -11,6 +11,6 @@ defmodule TodoList do
1111
end
1212

1313
def entries(todo_list, date) do
14-
HashDict.get(todo_list, date, [])
14+
Map.get(todo_list, date, [])
1515
end
16-
end
16+
end

Diff for: code_samples/ch04/todo_builder.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule TodoList do
2-
defstruct auto_id: 1, entries: HashDict.new
2+
defstruct auto_id: 1, entries: %{}
33

44
def new(entries \\ []) do
55
Enum.reduce(
@@ -14,7 +14,7 @@ defmodule TodoList do
1414
entry
1515
) do
1616
entry = Map.put(entry, :id, auto_id)
17-
new_entries = HashDict.put(entries, auto_id, entry)
17+
new_entries = Map.put(entries, auto_id, entry)
1818

1919
%TodoList{todo_list |
2020
entries: new_entries,
@@ -48,7 +48,7 @@ defmodule TodoList do
4848

4949
old_entry ->
5050
new_entry = updater_fun.(old_entry)
51-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
51+
new_entries = Map.put(entries, new_entry.id, new_entry)
5252
%TodoList{todo_list | entries: new_entries}
5353
end
5454
end
@@ -58,6 +58,6 @@ defmodule TodoList do
5858
%TodoList{entries: entries} = todo_list,
5959
entry_id
6060
) do
61-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
61+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
6262
end
63-
end
63+
end

Diff for: code_samples/ch04/todo_crud.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule TodoList do
2-
defstruct auto_id: 1, entries: HashDict.new
2+
defstruct auto_id: 1, entries: %{}
33

44
def new, do: %TodoList{}
55

@@ -8,7 +8,7 @@ defmodule TodoList do
88
entry
99
) do
1010
entry = Map.put(entry, :id, auto_id)
11-
new_entries = HashDict.put(entries, auto_id, entry)
11+
new_entries = Map.put(entries, auto_id, entry)
1212

1313
%TodoList{todo_list |
1414
entries: new_entries,
@@ -42,7 +42,7 @@ defmodule TodoList do
4242

4343
old_entry ->
4444
new_entry = updater_fun.(old_entry)
45-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
45+
new_entries = Map.put(entries, new_entry.id, new_entry)
4646
%TodoList{todo_list | entries: new_entries}
4747
end
4848
end
@@ -52,6 +52,6 @@ defmodule TodoList do
5252
%TodoList{entries: entries} = todo_list,
5353
entry_id
5454
) do
55-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
55+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
5656
end
57-
end
57+
end

Diff for: code_samples/ch04/todo_entry_map.ex

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
defmodule MultiDict do
2-
def new, do: HashDict.new
2+
def new, do: %{}
33

44
def add(dict, key, value) do
5-
HashDict.update(
5+
Map.update(
66
dict,
77
key,
88
[value],
@@ -11,7 +11,7 @@ defmodule MultiDict do
1111
end
1212

1313
def get(dict, key) do
14-
HashDict.get(dict, key, [])
14+
Map.get(dict, key, [])
1515
end
1616
end
1717

@@ -25,4 +25,4 @@ defmodule TodoList do
2525
def entries(todo_list, date) do
2626
MultiDict.get(todo_list, date)
2727
end
28-
end
28+
end

Diff for: code_samples/ch04/todo_import.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
defmodule TodoList do
2-
defstruct auto_id: 1, entries: HashDict.new
2+
defstruct auto_id: 1, entries: %{}
33

44
def new(entries \\ []) do
55
Enum.reduce(
@@ -14,7 +14,7 @@ defmodule TodoList do
1414
entry
1515
) do
1616
entry = Map.put(entry, :id, auto_id)
17-
new_entries = HashDict.put(entries, auto_id, entry)
17+
new_entries = Map.put(entries, auto_id, entry)
1818

1919
%TodoList{todo_list |
2020
entries: new_entries,
@@ -48,7 +48,7 @@ defmodule TodoList do
4848

4949
old_entry ->
5050
new_entry = updater_fun.(old_entry)
51-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
51+
new_entries = Map.put(entries, new_entry.id, new_entry)
5252
%TodoList{todo_list | entries: new_entries}
5353
end
5454
end
@@ -58,7 +58,7 @@ defmodule TodoList do
5858
%TodoList{entries: entries} = todo_list,
5959
entry_id
6060
) do
61-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
61+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
6262
end
6363
end
6464

@@ -103,4 +103,4 @@ defmodule TodoList.CsvImporter do
103103
defp create_entry({date, title}) do
104104
%{date: date, title: title}
105105
end
106-
end
106+
end

Diff for: code_samples/ch04/todo_multi_dict.ex

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
defmodule MultiDict do
2-
def new, do: HashDict.new
2+
def new, do: %{}
33

44
def add(dict, key, value) do
5-
HashDict.update(
5+
Map.update(
66
dict,
77
key,
88
[value],
@@ -11,7 +11,7 @@ defmodule MultiDict do
1111
end
1212

1313
def get(dict, key) do
14-
HashDict.get(dict, key, [])
14+
Map.get(dict, key, [])
1515
end
1616
end
1717

@@ -25,4 +25,4 @@ defmodule TodoList do
2525
def entries(todo_list, date) do
2626
MultiDict.get(todo_list, date)
2727
end
28-
end
28+
end

Diff for: code_samples/ch05/registered_todo_server.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ end
4646

4747

4848
defmodule TodoList do
49-
defstruct auto_id: 1, entries: HashDict.new
49+
defstruct auto_id: 1, entries: %{}
5050

5151
def new(entries \\ []) do
5252
Enum.reduce(
@@ -61,7 +61,7 @@ defmodule TodoList do
6161
entry
6262
) do
6363
entry = Map.put(entry, :id, auto_id)
64-
new_entries = HashDict.put(entries, auto_id, entry)
64+
new_entries = Map.put(entries, auto_id, entry)
6565

6666
%TodoList{todo_list |
6767
entries: new_entries,
@@ -95,7 +95,7 @@ defmodule TodoList do
9595

9696
old_entry ->
9797
new_entry = updater_fun.(old_entry)
98-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
98+
new_entries = Map.put(entries, new_entry.id, new_entry)
9999
%TodoList{todo_list | entries: new_entries}
100100
end
101101
end
@@ -105,6 +105,6 @@ defmodule TodoList do
105105
%TodoList{entries: entries} = todo_list,
106106
entry_id
107107
) do
108-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
108+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
109109
end
110-
end
110+
end

Diff for: code_samples/ch05/todo_server.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ end
4343

4444

4545
defmodule TodoList do
46-
defstruct auto_id: 1, entries: HashDict.new
46+
defstruct auto_id: 1, entries: %{}
4747

4848
def new(entries \\ []) do
4949
Enum.reduce(
@@ -58,7 +58,7 @@ defmodule TodoList do
5858
entry
5959
) do
6060
entry = Map.put(entry, :id, auto_id)
61-
new_entries = HashDict.put(entries, auto_id, entry)
61+
new_entries = Map.put(entries, auto_id, entry)
6262

6363
%TodoList{todo_list |
6464
entries: new_entries,
@@ -92,7 +92,7 @@ defmodule TodoList do
9292

9393
old_entry ->
9494
new_entry = updater_fun.(old_entry)
95-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
95+
new_entries = Map.put(entries, new_entry.id, new_entry)
9696
%TodoList{todo_list | entries: new_entries}
9797
end
9898
end
@@ -102,6 +102,6 @@ defmodule TodoList do
102102
%TodoList{entries: entries} = todo_list,
103103
entry_id
104104
) do
105-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
105+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
106106
end
107-
end
107+
end

Diff for: code_samples/ch06/key_value_gen_server.ex

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ defmodule KeyValueStore do
1414
end
1515

1616
def init(_) do
17-
{:ok, HashDict.new}
17+
{:ok, %{}}
1818
end
1919

2020
def handle_cast({:put, key, value}, state) do
21-
{:noreply, HashDict.put(state, key, value)}
21+
{:noreply, Map.put(state, key, value)}
2222
end
2323

2424
def handle_call({:get, key}, _, state) do
25-
{:reply, HashDict.get(state, key), state}
25+
{:reply, Map.get(state, key), state}
2626
end
27-
end
27+
end

Diff for: code_samples/ch06/server_process.ex

+4-4
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ defmodule KeyValueStore do
4444
end
4545

4646
def init do
47-
HashDict.new
47+
%{}
4848
end
4949

5050
def handle_call({:put, key, value}, state) do
51-
{:ok, HashDict.put(state, key, value)}
51+
{:ok, Map.put(state, key, value)}
5252
end
5353

5454
def handle_call({:get, key}, state) do
55-
{HashDict.get(state, key), state}
55+
{Map.get(state, key), state}
5656
end
57-
end
57+
end

Diff for: code_samples/ch06/server_process_cast.ex

+4-4
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ defmodule KeyValueStore do
5656
end
5757

5858
def init do
59-
HashDict.new
59+
%{}
6060
end
6161

6262
def handle_cast({:put, key, value}, state) do
63-
HashDict.put(state, key, value)
63+
Map.put(state, key, value)
6464
end
6565

6666
def handle_call({:get, key}, state) do
67-
{HashDict.get(state, key), state}
67+
{Map.get(state, key), state}
6868
end
69-
end
69+
end

Diff for: code_samples/ch06/server_process_todo.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ end
7272

7373

7474
defmodule TodoList do
75-
defstruct auto_id: 1, entries: HashDict.new
75+
defstruct auto_id: 1, entries: %{}
7676

7777
def new(entries \\ []) do
7878
Enum.reduce(
@@ -87,7 +87,7 @@ defmodule TodoList do
8787
entry
8888
) do
8989
entry = Map.put(entry, :id, auto_id)
90-
new_entries = HashDict.put(entries, auto_id, entry)
90+
new_entries = Map.put(entries, auto_id, entry)
9191

9292
%TodoList{todo_list |
9393
entries: new_entries,
@@ -121,7 +121,7 @@ defmodule TodoList do
121121

122122
old_entry ->
123123
new_entry = updater_fun.(old_entry)
124-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
124+
new_entries = Map.put(entries, new_entry.id, new_entry)
125125
%TodoList{todo_list | entries: new_entries}
126126
end
127127
end
@@ -131,6 +131,6 @@ defmodule TodoList do
131131
%TodoList{entries: entries} = todo_list,
132132
entry_id
133133
) do
134-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
134+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
135135
end
136-
end
136+
end

Diff for: code_samples/ch06/todo_server.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ end
3535

3636

3737
defmodule TodoList do
38-
defstruct auto_id: 1, entries: HashDict.new
38+
defstruct auto_id: 1, entries: %{}
3939

4040
def new(entries \\ []) do
4141
Enum.reduce(
@@ -50,7 +50,7 @@ defmodule TodoList do
5050
entry
5151
) do
5252
entry = Map.put(entry, :id, auto_id)
53-
new_entries = HashDict.put(entries, auto_id, entry)
53+
new_entries = Map.put(entries, auto_id, entry)
5454

5555
%TodoList{todo_list |
5656
entries: new_entries,
@@ -84,7 +84,7 @@ defmodule TodoList do
8484

8585
old_entry ->
8686
new_entry = updater_fun.(old_entry)
87-
new_entries = HashDict.put(entries, new_entry.id, new_entry)
87+
new_entries = Map.put(entries, new_entry.id, new_entry)
8888
%TodoList{todo_list | entries: new_entries}
8989
end
9090
end
@@ -94,6 +94,6 @@ defmodule TodoList do
9494
%TodoList{entries: entries} = todo_list,
9595
entry_id
9696
) do
97-
%TodoList{todo_list | entries: HashDict.delete(entries, entry_id)}
97+
%TodoList{todo_list | entries: Map.delete(entries, entry_id)}
9898
end
99-
end
99+
end

0 commit comments

Comments
 (0)