Skip to main content

src/oaisp@internal@fs.erl

-module(oaisp@internal@fs).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaisp/internal/fs.gleam").
-export([read/1, write/2, rename/2, delete/1]).

-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/fs.gleam", 23).
?DOC(false).
-spec read(binary()) -> {ok, binary()} | {error, binary()}.
read(Path) ->
    gleam@result:'try'(
        oaisp_ffi:read_file(Path),
        fun(Bytes) -> _pipe = gleam@bit_array:to_string(Bytes),
            gleam@result:replace_error(
                _pipe,
                <<"file is not valid UTF-8"/utf8>>
            ) end
    ).

-file("src/oaisp/internal/fs.gleam", 30).
?DOC(false).
-spec write(binary(), binary()) -> {ok, nil} | {error, binary()}.
write(Path, Contents) ->
    oaisp_ffi:write_file(Path, Contents).

-file("src/oaisp/internal/fs.gleam", 35).
?DOC(false).
-spec rename(binary(), binary()) -> {ok, nil} | {error, binary()}.
rename(Source, Destination) ->
    oaisp_ffi:rename(Source, Destination).

-file("src/oaisp/internal/fs.gleam", 40).
?DOC(false).
-spec delete(binary()) -> {ok, nil} | {error, binary()}.
delete(Path) ->
    oaisp_ffi:delete(Path).