-module(munch@internal@native). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/munch/internal/native.gleam"). -export([new/1, md5/0, sha1/0, sha224/0, sha256/0, sha384/0, sha512/0]). -export_type([context/0]). -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). -type context() :: any(). -file("src/munch/internal/native.gleam", 29). ?DOC(false). -spec new(binary()) -> {ok, munch@internal@hash:hash()} | {error, nil}. new(Algorithm) -> case munch_native_ffi:init(Algorithm) of {ok, Context} -> {ok, munch@internal@hash:from( Context, fun crypto:hash_update/2, fun crypto:hash_final/1 )}; {error, _} -> {error, nil} end. -file("src/munch/internal/native.gleam", 5). ?DOC(false). -spec md5() -> {ok, munch@internal@hash:hash()} | {error, nil}. md5() -> new(<<"md5"/utf8>>). -file("src/munch/internal/native.gleam", 9). ?DOC(false). -spec sha1() -> {ok, munch@internal@hash:hash()} | {error, nil}. sha1() -> new(<<"sha1"/utf8>>). -file("src/munch/internal/native.gleam", 13). ?DOC(false). -spec sha224() -> {ok, munch@internal@hash:hash()} | {error, nil}. sha224() -> new(<<"sha224"/utf8>>). -file("src/munch/internal/native.gleam", 17). ?DOC(false). -spec sha256() -> {ok, munch@internal@hash:hash()} | {error, nil}. sha256() -> new(<<"sha256"/utf8>>). -file("src/munch/internal/native.gleam", 21). ?DOC(false). -spec sha384() -> {ok, munch@internal@hash:hash()} | {error, nil}. sha384() -> new(<<"sha384"/utf8>>). -file("src/munch/internal/native.gleam", 25). ?DOC(false). -spec sha512() -> {ok, munch@internal@hash:hash()} | {error, nil}. sha512() -> new(<<"sha512"/utf8>>).