-module(fio@internal@io). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/fio/internal/io.gleam"). -export([exists/1, tmp_dir/0, unique_name/1, read/1, read_bits/1, write/2, write_bits/2, write_atomic/2, write_bits_atomic/2, append/2, append_bits/2, delete_file/1, delete_directory/1, delete_recursive/1, is_directory/1, is_file/1, is_symlink/1, copy_file/2, rename/2, create_symlink/2, create_hard_link/2, set_permissions_octal/2, set_permissions/2, create_directory/1, create_directory_all/1, list_directory/1, current_directory/0, touch/1, read_link/1, checksum/2, open_handle/2, close_handle/1, read_chunk/2, write_handle/2, write_handle_bits/2, seek/2, tell/1, file_info/1, link_info/1]). -export_type([ffi_error/0, raw_file_info/0, raw_handle/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 ffi_error() :: any(). -type raw_file_info() :: any(). -type raw_handle() :: any(). -file("src/fio/internal/io.gleam", 67). ?DOC(false). -spec exists(binary()) -> boolean(). exists(Path) -> fio_ffi:file_exists(Path). -file("src/fio/internal/io.gleam", 157). ?DOC(false). -spec tmp_dir() -> binary(). tmp_dir() -> fio_ffi:get_tmp_dir(). -file("src/fio/internal/io.gleam", 342). ?DOC(false). -spec unique_name(binary()) -> binary(). unique_name(Prefix) -> fio_ffi:unique_name(Prefix). -file("src/fio/internal/io.gleam", 409). ?DOC(false). -spec map_ffi_error({ok, EEW} | {error, ffi_error()}) -> {ok, EEW} | {error, fio@error:fio_error()}. map_ffi_error(Result) -> case Result of {ok, Value} -> {ok, Value}; {error, Err} -> {error, fio_ffi_bridge:map_error(Err)} end. -file("src/fio/internal/io.gleam", 7). ?DOC(false). -spec read(binary()) -> {ok, binary()} | {error, fio@error:fio_error()}. read(Path) -> _pipe = fio_ffi:read_file(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 12). ?DOC(false). -spec read_bits(binary()) -> {ok, bitstring()} | {error, fio@error:fio_error()}. read_bits(Path) -> _pipe = fio_ffi:read_file_bits(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 17). ?DOC(false). -spec write(binary(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. write(Path, Content) -> _pipe = fio_ffi:write_file(Path, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 22). ?DOC(false). -spec write_bits(binary(), bitstring()) -> {ok, nil} | {error, fio@error:fio_error()}. write_bits(Path, Content) -> _pipe = fio_ffi:write_file_bits(Path, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 29). ?DOC(false). -spec write_atomic(binary(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. write_atomic(Path, Content) -> _pipe = fio_ffi:write_file_atomic(Path, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 34). ?DOC(false). -spec write_bits_atomic(binary(), bitstring()) -> {ok, nil} | {error, fio@error:fio_error()}. write_bits_atomic(Path, Content) -> _pipe = fio_ffi:write_file_bits_atomic(Path, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 42). ?DOC(false). -spec append(binary(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. append(Path, Content) -> _pipe = fio_ffi:append_file(Path, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 47). ?DOC(false). -spec append_bits(binary(), bitstring()) -> {ok, nil} | {error, fio@error:fio_error()}. append_bits(Path, Content) -> _pipe = fio_ffi:append_file_bits(Path, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 52). ?DOC(false). -spec delete_file(binary()) -> {ok, nil} | {error, fio@error:fio_error()}. delete_file(Path) -> _pipe = fio_ffi:delete_file(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 57). ?DOC(false). -spec delete_directory(binary()) -> {ok, nil} | {error, fio@error:fio_error()}. delete_directory(Path) -> _pipe = fio_ffi:delete_directory(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 62). ?DOC(false). -spec delete_recursive(binary()) -> {ok, nil} | {error, fio@error:fio_error()}. delete_recursive(Path) -> _pipe = fio_ffi:delete_directory_recursive(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 82). ?DOC(false). -spec is_directory(binary()) -> {ok, boolean()} | {error, fio@error:fio_error()}. is_directory(Path) -> _pipe = fio_ffi:is_directory(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 87). ?DOC(false). -spec is_file(binary()) -> {ok, boolean()} | {error, fio@error:fio_error()}. is_file(Path) -> _pipe = fio_ffi:is_file(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 92). ?DOC(false). -spec is_symlink(binary()) -> {ok, boolean()} | {error, fio@error:fio_error()}. is_symlink(Path) -> _pipe = fio_ffi:is_symlink(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 97). ?DOC(false). -spec copy_file(binary(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. copy_file(Src, Dest) -> _pipe = fio_ffi:copy_file(Src, Dest), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 102). ?DOC(false). -spec rename(binary(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. rename(Src, Dest) -> _pipe = fio_ffi:rename_file(Src, Dest), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 107). ?DOC(false). -spec create_symlink(binary(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. create_symlink(Target, Link) -> _pipe = fio_ffi:create_symlink(Target, Link), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 115). ?DOC(false). -spec create_hard_link(binary(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. create_hard_link(Target, Link) -> _pipe = fio_ffi:create_hard_link(Target, Link), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 123). ?DOC(false). -spec set_permissions_octal(binary(), integer()) -> {ok, nil} | {error, fio@error:fio_error()}. set_permissions_octal(Path, Mode) -> _pipe = fio_ffi:set_permissions(Path, Mode), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 128). ?DOC(false). -spec set_permissions(binary(), fio@types:file_permissions()) -> {ok, nil} | {error, fio@error:fio_error()}. set_permissions(Path, Permissions) -> Mode = fio@types:file_permissions_to_octal(Permissions), _pipe = fio_ffi:set_permissions(Path, Mode), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 137). ?DOC(false). -spec create_directory(binary()) -> {ok, nil} | {error, fio@error:fio_error()}. create_directory(Path) -> _pipe = fio_ffi:make_directory(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 142). ?DOC(false). -spec create_directory_all(binary()) -> {ok, nil} | {error, fio@error:fio_error()}. create_directory_all(Path) -> _pipe = fio_ffi:make_directory_p(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 147). ?DOC(false). -spec list_directory(binary()) -> {ok, list(binary())} | {error, fio@error:fio_error()}. list_directory(Path) -> _pipe = fio_ffi:list_directory(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 152). ?DOC(false). -spec current_directory() -> {ok, binary()} | {error, fio@error:fio_error()}. current_directory() -> _pipe = fio_ffi:current_directory(), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 162). ?DOC(false). -spec touch(binary()) -> {ok, nil} | {error, fio@error:fio_error()}. touch(Path) -> _pipe = fio_ffi:touch(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 167). ?DOC(false). -spec read_link(binary()) -> {ok, binary()} | {error, fio@error:fio_error()}. read_link(Path) -> _pipe = fio_ffi:read_link(Path), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 172). ?DOC(false). -spec checksum(binary(), binary()) -> {ok, binary()} | {error, fio@error:fio_error()}. checksum(Path, Algorithm) -> _pipe = fio_ffi:checksum(Path, Algorithm), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 181). ?DOC(false). -spec open_handle(binary(), binary()) -> {ok, raw_handle()} | {error, fio@error:fio_error()}. open_handle(Path, Mode) -> _pipe = fio_ffi:open_handle(Path, Mode), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 186). ?DOC(false). -spec close_handle(raw_handle()) -> {ok, nil} | {error, fio@error:fio_error()}. close_handle(Handle) -> _pipe = fio_ffi:close_handle(Handle), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 192). ?DOC(false). -spec read_chunk(raw_handle(), integer()) -> {ok, gleam@option:option(bitstring())} | {error, fio@error:fio_error()}. read_chunk(Handle, Size) -> _pipe = fio_ffi:read_chunk(Handle, Size), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 200). ?DOC(false). -spec write_handle(raw_handle(), binary()) -> {ok, nil} | {error, fio@error:fio_error()}. write_handle(Handle, Content) -> _pipe = fio_ffi:write_handle(Handle, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 205). ?DOC(false). -spec write_handle_bits(raw_handle(), bitstring()) -> {ok, nil} | {error, fio@error:fio_error()}. write_handle_bits(Handle, Content) -> _pipe = fio_ffi:write_handle_bits(Handle, Content), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 214). ?DOC(false). -spec seek(raw_handle(), integer()) -> {ok, nil} | {error, fio@error:fio_error()}. seek(Handle, Position) -> _pipe = fio_ffi:seek_handle(Handle, Position), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 219). ?DOC(false). -spec tell(raw_handle()) -> {ok, integer()} | {error, fio@error:fio_error()}. tell(Handle) -> _pipe = fio_ffi:tell_handle(Handle), map_ffi_error(_pipe). -file("src/fio/internal/io.gleam", 416). ?DOC(false). -spec map_file_info_result({ok, raw_file_info()} | {error, ffi_error()}) -> {ok, fio@types:file_info()} | {error, fio@error:fio_error()}. map_file_info_result(Result) -> case Result of {ok, Raw} -> {ok, fio_ffi_bridge:map_file_info(Raw)}; {error, Err} -> {error, fio_ffi_bridge:map_error(Err)} end. -file("src/fio/internal/io.gleam", 72). ?DOC(false). -spec file_info(binary()) -> {ok, fio@types:file_info()} | {error, fio@error:fio_error()}. file_info(Path) -> _pipe = fio_ffi:file_info(Path), map_file_info_result(_pipe). -file("src/fio/internal/io.gleam", 77). ?DOC(false). -spec link_info(binary()) -> {ok, fio@types:file_info()} | {error, fio@error:fio_error()}. link_info(Path) -> _pipe = fio_ffi:link_info(Path), map_file_info_result(_pipe).