Current section

Files

Jump to
mist src mist@internal@file.erl
Raw

src/mist@internal@file.erl

-module(mist@internal@file).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function]).
-export([sendfile/5, stat/1]).
-export_type([file_descriptor/0, file_error/0, file/0]).
-type file_descriptor() :: any().
-type file_error() :: is_dir | no_access | no_entry | unknown_file_error.
-type file() :: {file, file_descriptor(), integer()}.
-spec sendfile(
file_descriptor(),
glisten@socket:socket(),
integer(),
integer(),
list(any())
) -> {ok, integer()} | {error, gleam@erlang@atom:atom_()}.
sendfile(File_descriptor, Socket, Offset, Bytes, Options) ->
file:sendfile(File_descriptor, Socket, Offset, Bytes, Options).
-spec stat(bitstring()) -> {ok, file()} | {error, file_error()}.
stat(Filename) ->
_pipe = Filename,
_pipe@1 = mist_ffi:file_open(_pipe),
gleam@result:map(
_pipe@1,
fun(Fd) ->
File_size = filelib:file_size(Filename),
{file, Fd, File_size}
end
).