Current section
Files
Jump to
Current section
Files
src/glats@message.erl
-module(glats@message).
-compile([no_auto_import, nowarn_unused_vars]).
-export([new/2, set_reply_to/2, set_header/3]).
-export_type([message/0]).
-type message() :: {message,
binary(),
gleam@map:map_(binary(), binary()),
gleam@option:option(binary()),
binary()}.
-spec new(binary(), binary()) -> message().
new(Subject, Body) ->
{message, Subject, gleam@map:new(), none, Body}.
-spec set_reply_to(message(), binary()) -> message().
set_reply_to(Message, Reply_to) ->
erlang:setelement(4, Message, {some, Reply_to}).
-spec set_header(message(), binary(), binary()) -> message().
set_header(Message, Key, Value) ->
erlang:setelement(
3,
Message,
begin
_pipe = erlang:element(3, Message),
gleam@map:insert(_pipe, Key, Value)
end
).