Packages

Elixir client for Apache RocketMQ

Current section

Files

Jump to
ex_rocketmq lib ex_rocketmq util bit_helper.ex
Raw

lib/ex_rocketmq/util/bit_helper.ex

defmodule ExRocketmq.Util.BitHelper do
@moduledoc """
bit tool for bit operation
"""
@spec set_bit(non_neg_integer(), non_neg_integer(), boolean()) :: non_neg_integer()
def set_bit(flag, offset, condition) do
if condition do
flag
|> Bitwise.bor(Bitwise.bsl(1, offset))
else
flag
end
end
def unset_bit(flag, offset, condition) do
if condition do
flag
|> Bitwise.bor(Bitwise.bsl(-2, offset))
else
flag
end
end
end