1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---@meta
local fs =
---@class File
---Pulls some bytes from this source into the specified buffer, returning how many bytes were read. A nonzero n value indicates that the buffer buf has been filled in with n bytes of data from this source.
---@field read fun(self: File, buffer: Buffer)
---Pulls some bytes from this source into the specified buffer, advancing the buffer's internal cursor. A nonzero n value indicates that the buffer buf has been filled in with n bytes of data from this source.
---@field read_buffer fun(self: File, buffer: Buffer)
---Reads the exact number of bytes required to fill buffer.
---@field read_exact fun(self: File, buffer: Buffer)
---This function will attempt to write the entire contents of buffer, but the entire write may not succeed, or the write may also generate an error. A call to write represents at most one attempt to write to any wrapped object. If the return value is n then it must be guaranteed that n <= len(buf). A return value of 0 typically means that the underlying object is no longer able to accept bytes and will likely not be able to in the future as well, or that the buffer provided is empty.
---@field write fun(self: File, buffer: Buffer)
---This method will continuously call write until buffer remaining calls returns false. This method will not return until the entire buffer has been successfully written or an error occurs. The first error generated will be returned. The buffer is advanced after each chunk is successfully written.
---@field write_buffer fun(self: File, buffer: Buffer)
---@class FileType
---@field is_file fun(file_type: FileType): boolean
---@field is_dir fun(file_type: FileType): boolean
---@field is_symlink fun(file_type: FileType): boolean
---@class DirEntry
---@field file_name fun(dir_entry: DirEntry): string Returns the file_name of the entry
---@field file_type fun(dir_entry: DirEntry): FileType
---@field path fun(dir_entry: DirEntry): string Returns the path of each entry in the list
---@class FileMetadata
---@field last_accessed fun(file_metadata: FileMetadata): number
---@field created_at fun(file_metadata: FileMetadata): number
---@field last_modified fun(file_metadata: FileMetadata): number
---@field file_type fun(file_metadata: FileMetadata): FileType
---@field file_permissions fun(file_metadata: FileMetadata): FileIOPermissions
---@class FileIOPermissions
---@field is_readonly fun(file_io_permissions: FileIOPermissions): boolean
---@field set_readonly fun(file_io_permissions: FileIOPermissions, value: boolean)
---Creates a new buffer with size in bytes allocated
---@param capacity number
---@return Buffer
---Opens the file in the given path
---@param path string
---@return File
---Returns the entire content of the file
---@param path string Path to the file
---@return string
---Returns the entire content of the file as bytes
---@param path string Path to the file
---@return number[]
---Returns the entire content of the file
---@param path string Path to the file
---@param contents string | number[] | table
---Returns the metadata of a file or directory
---@param path string
---@return FileMetadata
---Returns the content of the directory
---@param path string Path to the file
---@return DirEntry[]
---Returns the path of the current directory
---@return string
---Returns the path separator based on the operating system
---@return string
---Returns the path of the current running script
---@return string
---Changes the current directory
---@param path string Path to the directory
---Checks if a path exists
---@param path string Path to the file or directory
---@return boolean
---Creates a directory
---@param path string Path to the directory
---Creates a directory recursively
---@param path string Path to the directory
---Removes a file
---@param path string Path to the file
---Removes a directory
---@param path string Path to the directory
---Removes a directory recursively
---@param path string Path to the directory
return fs