Skip to content

Commit 1f04170

Browse files
author
Kevin C. Baird
committed
Refs gar1t#19: Add flow_control.erl for pattern matching
1 parent 0f0a3a0 commit 1f04170

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

examples/flow_control.erl

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
-module(flow_control).
2+
-export([report_result/1, report_result_via_case/1]).
3+
-include_lib("eunit/include/eunit.hrl").
4+
5+
% An example with case
6+
report_result_via_case(Response) ->
7+
case Response of
8+
{ok, Msg} -> report_success(Msg);
9+
{error, Msg} -> report_failure(Msg)
10+
end.
11+
12+
% An example with pattern matching
13+
report_result({ok, Msg}) -> report_success(Msg);
14+
report_result({error, Msg}) -> report_failure(Msg).
15+
16+
% private/hidden functions
17+
% Real code would do something meaningful with the argument.
18+
report_success(_Msg) -> success.
19+
report_failure(_Msg) -> failure.
20+
21+
%% TESTS
22+
success_via_case_test() -> ?assertEqual(success, report_result_via_case({ok, anything})).
23+
failure_via_case_test() -> ?assertEqual(failure, report_result_via_case({error, anything})).
24+
25+
success_via_pm_test() -> ?assertEqual(success, report_result({ok, anything})).
26+
failure_via_pm_test() -> ?assertEqual(failure, report_result({error, anything})).

0 commit comments

Comments
 (0)