Packages

A replacement for gleam_crypto that works on all targets.

Current section

Files

Jump to
munch src munch@internal@bitwise.erl
Raw

src/munch@internal@bitwise.erl

-module(munch@internal@bitwise).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/munch/internal/bitwise.gleam").
-export(['band'/2, 'bor'/2, 'xor'/2, 'bnot'/1, shl/2, shr/2, rol/2, ror/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/munch/internal/bitwise.gleam", 8).
?DOC(false).
-spec 'band'(integer(), integer()) -> integer().
'band'(X, Y) ->
erlang:'band'(X, Y).
-file("src/munch/internal/bitwise.gleam", 13).
?DOC(false).
-spec 'bor'(integer(), integer()) -> integer().
'bor'(X, Y) ->
erlang:'bor'(X, Y).
-file("src/munch/internal/bitwise.gleam", 18).
?DOC(false).
-spec 'xor'(integer(), integer()) -> integer().
'xor'(X, Y) ->
erlang:'bxor'(X, Y).
-file("src/munch/internal/bitwise.gleam", 23).
?DOC(false).
-spec 'bnot'(integer()) -> integer().
'bnot'(X) ->
'band'(erlang:'bnot'(X), 16#ffffffff).
-file("src/munch/internal/bitwise.gleam", 28).
?DOC(false).
-spec shl(integer(), integer()) -> integer().
shl(X, Amount) ->
'band'(erlang:'bsl'(X, Amount), 16#ffffffff).
-file("src/munch/internal/bitwise.gleam", 33).
?DOC(false).
-spec shr(integer(), integer()) -> integer().
shr(X, Amount) ->
erlang:'bsr'(X, Amount).
-file("src/munch/internal/bitwise.gleam", 38).
?DOC(false).
-spec rol(integer(), integer()) -> integer().
rol(Value, Amount) ->
'bor'(shl(Value, Amount), shr(Value, 32 - Amount)).
-file("src/munch/internal/bitwise.gleam", 45).
?DOC(false).
-spec ror(integer(), integer()) -> integer().
ror(Value, Amount) ->
'bor'(shr(Value, Amount), shl(Value, 32 - Amount)).