171 lines
3.6 KiB
Lua
171 lines
3.6 KiB
Lua
---@meta io
|
|
|
|
---#DES 'io'
|
|
---@class iolib
|
|
---#DES 'io.stdin'
|
|
---@field stdin file*
|
|
---#DES 'io.stdout'
|
|
---@field stdout file*
|
|
---#DES 'io.stderr'
|
|
---@field stderr file*
|
|
io = {}
|
|
|
|
---@alias openmode
|
|
---|>"r" # ---#DESTAIL 'openmode.r'
|
|
---| "w" # ---#DESTAIL 'openmode.w'
|
|
---| "a" # ---#DESTAIL 'openmode.a'
|
|
---| "r+" # ---#DESTAIL 'openmode.r+'
|
|
---| "w+" # ---#DESTAIL 'openmode.w+'
|
|
---| "a+" # ---#DESTAIL 'openmode.a+'
|
|
---| "rb" # ---#DESTAIL 'openmode.rb'
|
|
---| "wb" # ---#DESTAIL 'openmode.wb'
|
|
---| "ab" # ---#DESTAIL 'openmode.ab'
|
|
---| "r+b" # ---#DESTAIL 'openmode.r+b'
|
|
---| "w+b" # ---#DESTAIL 'openmode.w+b'
|
|
---| "a+b" # ---#DESTAIL 'openmode.a+b'
|
|
|
|
---#DES 'io.close'
|
|
---@param file? file*
|
|
---@return boolean? suc
|
|
---@return exitcode? exitcode
|
|
---@return integer? code
|
|
function io.close(file) end
|
|
|
|
---#DES 'io.flush'
|
|
function io.flush() end
|
|
|
|
---#DES 'io.input'
|
|
---@overload fun():file*
|
|
---@param file string|file*
|
|
function io.input(file) end
|
|
|
|
---#DES 'io.lines'
|
|
---@param filename string?
|
|
---@param ... readmode
|
|
---@return fun():any, ...
|
|
function io.lines(filename, ...) end
|
|
|
|
---#DES 'io.open'
|
|
---@param filename string
|
|
---@param mode? openmode
|
|
---@return file*?
|
|
---@return string? errmsg
|
|
---@nodiscard
|
|
function io.open(filename, mode) end
|
|
|
|
---#DES 'io.output'
|
|
---@overload fun():file*
|
|
---@param file string|file*
|
|
function io.output(file) end
|
|
|
|
---@alias popenmode
|
|
---| "r" # ---#DESTAIL 'popenmode.r'
|
|
---| "w" # ---#DESTAIL 'popenmode.w'
|
|
|
|
---#DES 'io.popen'
|
|
---@param prog string
|
|
---@param mode? popenmode
|
|
---@return file*?
|
|
---@return string? errmsg
|
|
function io.popen(prog, mode) end
|
|
|
|
---#DES 'io.read'
|
|
---@param ... readmode
|
|
---@return any
|
|
---@return any ...
|
|
---@nodiscard
|
|
function io.read(...) end
|
|
|
|
---#DES 'io.tmpfile'
|
|
---@return file*
|
|
---@nodiscard
|
|
function io.tmpfile() end
|
|
|
|
---@alias filetype
|
|
---| "file" # ---#DESTAIL 'filetype.file'
|
|
---| "closed file" # ---#DESTAIL 'filetype.closed file'
|
|
---| `nil` # ---#DESTAIL 'filetype.nil'
|
|
|
|
---#DES 'io.type'
|
|
---@param file file*
|
|
---@return filetype
|
|
---@nodiscard
|
|
function io.type(file) end
|
|
|
|
---#DES 'io.write'
|
|
---@return file*
|
|
---@return string? errmsg
|
|
function io.write(...) end
|
|
|
|
---#DES 'file'
|
|
---@class file*
|
|
local file = {}
|
|
|
|
---@alias readmode integer|string
|
|
---#if VERSION >= 5.3 then
|
|
---| "n" # ---#DESTAIL 'readmode.n'
|
|
---| "a" # ---#DESTAIL 'readmode.a'
|
|
---|>"l" # ---#DESTAIL 'readmode.l'
|
|
---| "L" # ---#DESTAIL 'readmode.L'
|
|
---#else
|
|
---| "*n" # ---#DESTAIL 'readmode.n'
|
|
---| "*a" # ---#DESTAIL 'readmode.a'
|
|
---|>"*l" # ---#DESTAIL 'readmode.l'
|
|
---#if JIT then
|
|
---| "*L" # ---#DESTAIL 'readmode.L'
|
|
---#end
|
|
---#end
|
|
|
|
---@alias exitcode "exit"|"signal"
|
|
|
|
---#DES 'file:close'
|
|
---@return boolean? suc
|
|
---@return exitcode? exitcode
|
|
---@return integer? code
|
|
function file:close() end
|
|
|
|
---#DES 'file:flush'
|
|
function file:flush() end
|
|
|
|
---#DES 'file:lines'
|
|
---@param ... readmode
|
|
---@return fun():any, ...
|
|
function file:lines(...) end
|
|
|
|
---#DES 'file:read'
|
|
---@param ... readmode
|
|
---@return any
|
|
---@return any ...
|
|
---@nodiscard
|
|
function file:read(...) end
|
|
|
|
---@alias seekwhence
|
|
---| "set" # ---#DESTAIL 'seekwhence.set'
|
|
---|>"cur" # ---#DESTAIL 'seekwhence.cur'
|
|
---| "end" # ---#DESTAIL 'seekwhence.end'
|
|
|
|
---#DES 'file:seek'
|
|
---@param whence? seekwhence
|
|
---@param offset? integer
|
|
---@return integer offset
|
|
---@return string? errmsg
|
|
function file:seek(whence, offset) end
|
|
|
|
---@alias vbuf
|
|
---| "no" # ---#DESTAIL 'vbuf.no'
|
|
---| "full" # ---#DESTAIL 'vbuf.full'
|
|
---| "line" # ---#DESTAIL 'vbuf.line'
|
|
|
|
---#DES 'file:setvbuf'
|
|
---@param mode vbuf
|
|
---@param size? integer
|
|
function file:setvbuf(mode, size) end
|
|
|
|
---#DES 'file:write'
|
|
---@param ... string|number
|
|
---@return file*?
|
|
---@return string? errmsg
|
|
function file:write(...) end
|
|
|
|
return io
|