From cac08bc5f037bc0fb544330e2262478b9e916747 Mon Sep 17 00:00:00 2001 From: James Harton Date: Sun, 12 Jan 2020 19:29:31 +1300 Subject: [PATCH] Allow `set_bit/3` to take boolean values. --- lib/wafer/twiddles.ex | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/wafer/twiddles.ex b/lib/wafer/twiddles.ex index 7c78c9b..789d755 100644 --- a/lib/wafer/twiddles.ex +++ b/lib/wafer/twiddles.ex @@ -71,6 +71,12 @@ defmodule Wafer.Twiddles do def set_bit(byte, bit_number, 0) when is_byte(byte) and is_bit_number(bit_number), do: clear_bit(byte, bit_number) + def set_bit(byte, bit_number, true) when is_bit_number(bit_number), + do: set_bit(byte, bit_number, 1) + + def set_bit(byte, bit_number, false) when is_bit_number(bit_number), + do: set_bit(byte, bit_number, 0) + def set_bit(<>, bit_number, value) when value in [0, 1], do: <>