-module(oaisp@internal@atomic_write).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaisp/internal/atomic_write.gleam").
-export([write/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/oaisp/internal/atomic_write.gleam", 10).
?DOC(false).
-spec write(binary(), binary()) -> {ok, nil} | {error, binary()}.
write(Path, Contents) ->
Temp = <<Path/binary, ".oaisp.tmp"/utf8>>,
gleam@result:'try'(
oaisp@internal@fs:write(Temp, Contents),
fun(_) -> oaisp@internal@fs:rename(Temp, Path) end
).