%% -*- erlang-indent-level: 2 -*- %%-------------------------------------------------------------------- %% Tests that basic cases of binary pattern matching in guards work %%-------------------------------------------------------------------- -module(bs_pmatch_in_guards). -export([test/0]). test() -> 1 = in_guard(<<16#74ad:16>>, 16#e95, 5), 2 = in_guard(<<16#3A,16#F7,"hello">>, 16#3AF7, <<"hello">>), 3 = in_guard(<<16#FBCD:14,3.1415/float,3:2>>, 16#FBCD, 3.1415), nope = in_guard(<<1>>, 42, b), nope = in_guard(<<1>>, a, b), nope = in_guard(<<1,2>>, 1, 1), nope = in_guard(<<4,5>>, 1, 2.71), nope = in_guard(<<4,5>>, 1, <<12,13>>), ok. in_guard(Bin, A, B) when <> == Bin -> 1; in_guard(Bin, A, B) when <> == Bin -> 2; in_guard(Bin, A, B) when <> == Bin -> 3; in_guard(_, _, _) -> nope.