mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	Problem: No type information for `vim.uv`. Solution: Vendor https://github.com/LuaCATS/luv (which is what luals bundles). This will allow other tooling to work out-of-the-box and make these files available to users and plugins without the need for `lazydev.nvim` etc.
		
			
				
	
	
		
			177 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
---@meta
 | 
						|
-- luacheck: no unused args
 | 
						|
error('Cannot require a meta file')
 | 
						|
 | 
						|
--- UDP handles encapsulate UDP communication for both clients and servers.
 | 
						|
---
 | 
						|
---@class uv.uv_udp_t : uv.uv_handle_t
 | 
						|
local udp = {} -- luacheck: no unused
 | 
						|
 | 
						|
--- Bind the UDP handle to an IP address and port. Any `flags` are set with a table
 | 
						|
--- with fields `reuseaddr` or `ipv6only` equal to `true` or `false`.
 | 
						|
---
 | 
						|
---@param  host       string
 | 
						|
---@param  port       integer
 | 
						|
---@param  flags?     uv.udp_bind.flags
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:bind(host, port, flags) end
 | 
						|
 | 
						|
--- Associate the UDP handle to a remote address and port, so every message sent by
 | 
						|
--- this handle is automatically sent to that destination.
 | 
						|
--
 | 
						|
--- Calling this function with a NULL addr disconnects the handle. Trying to call `udp:connect()` on an already connected handle will result in an `EISCONN` error. Trying to disconnect a handle that is not connected will return an `ENOTCONN` error.
 | 
						|
---
 | 
						|
---@param  host       string
 | 
						|
---@param  port       integer
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:connect(host, port) end
 | 
						|
 | 
						|
--- Returns the handle's send queue count.
 | 
						|
---
 | 
						|
---@return integer count
 | 
						|
function udp:get_send_queue_count() end
 | 
						|
 | 
						|
--- Returns the handle's send queue size.
 | 
						|
---
 | 
						|
---@return integer size
 | 
						|
function udp:get_send_queue_size() end
 | 
						|
 | 
						|
--- Get the remote IP and port of the UDP handle on connected UDP handles.
 | 
						|
---
 | 
						|
---@return uv.udp.sockname|nil peername
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:getpeername() end
 | 
						|
 | 
						|
--- Get the local IP and port of the UDP handle.
 | 
						|
---
 | 
						|
---@return uv.udp.sockname|nil sockname
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:getsockname() end
 | 
						|
 | 
						|
--- Opens an existing file descriptor or Windows SOCKET as a UDP handle.
 | 
						|
---
 | 
						|
--- Unix only: The only requirement of the sock argument is that it follows the
 | 
						|
--- datagram contract (works in unconnected mode, supports sendmsg()/recvmsg(),
 | 
						|
--- etc). In other words, other datagram-type sockets like raw sockets or netlink
 | 
						|
--- sockets can also be passed to this function.
 | 
						|
---
 | 
						|
--- The file descriptor is set to non-blocking mode.
 | 
						|
---
 | 
						|
--- Note: The passed file descriptor or SOCKET is not checked for its type, but
 | 
						|
--- it's required that it represents a valid datagram socket.
 | 
						|
---
 | 
						|
---@param  fd         integer
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:open(fd) end
 | 
						|
 | 
						|
--- Prepare for receiving data.
 | 
						|
---
 | 
						|
--- If the socket has not previously been bound with `udp:bind()` it is bound to `0.0.0.0` (the "all interfaces" IPv4 address) and a random port number.
 | 
						|
---
 | 
						|
---@param  callback   uv.udp_recv_start.callback
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:recv_start(callback) end
 | 
						|
 | 
						|
--- Stop listening for incoming datagrams.
 | 
						|
---
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:recv_stop() end
 | 
						|
 | 
						|
--- Send data over the UDP socket.
 | 
						|
---
 | 
						|
--- If the socket has not previously been bound with `udp:bind()` it will be bound to `0.0.0.0` (the "all interfaces" IPv4 address) and a random port number.
 | 
						|
---
 | 
						|
---@param  data                 uv.buffer
 | 
						|
---@param  host                 string
 | 
						|
---@param  port                 integer
 | 
						|
---@param  callback             uv.udp_send.callback
 | 
						|
---@return uv.uv_udp_send_t|nil bytes
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:send(data, host, port, callback) end
 | 
						|
 | 
						|
--- Set broadcast on or off.
 | 
						|
---
 | 
						|
---@param  on         boolean
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:set_broadcast(on) end
 | 
						|
 | 
						|
--- Set membership for a multicast address.
 | 
						|
---
 | 
						|
---@param  multicast_addr string          # multicast address to set membership for
 | 
						|
---@param  interface_addr string          # interface address
 | 
						|
---@param  membership     "leave"|"join"  # membership intent
 | 
						|
---@return 0|nil          success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:set_membership(multicast_addr, interface_addr, membership) end
 | 
						|
 | 
						|
--- Set the multicast interface to send or receive data on.
 | 
						|
---
 | 
						|
---@param interface_addr string
 | 
						|
---@return 0|nil success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:set_multicast_interface(interface_addr) end
 | 
						|
 | 
						|
--- Set IP multicast loop flag. Makes multicast packets loop back to local
 | 
						|
--- sockets.
 | 
						|
---
 | 
						|
---@param on boolean
 | 
						|
---@return 0|nil success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:set_multicast_loop(on) end
 | 
						|
 | 
						|
--- Set the multicast ttl.
 | 
						|
---
 | 
						|
---@param  ttl        integer # an integer 1 through 255
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:set_multicast_ttl(ttl) end
 | 
						|
 | 
						|
--- Set membership for a source-specific multicast group.
 | 
						|
---
 | 
						|
---@param  multicast_addr  string         # multicast address to set membership for
 | 
						|
---@param  interface_addr? string         # interface address
 | 
						|
---@param  source_addr     string         # source address
 | 
						|
---@param  membership      "leave"|"join" # membership intent
 | 
						|
---@return 0|nil           success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:set_source_membership(multicast_addr, interface_addr, source_addr, membership) end
 | 
						|
 | 
						|
--- Set the time to live.
 | 
						|
---
 | 
						|
---@param  ttl        integer # integer 1 through 255
 | 
						|
---@return 0|nil      success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:set_ttl(ttl) end
 | 
						|
 | 
						|
--- Same as `udp:send()`, but won't queue a send request if it can't be
 | 
						|
--- completed immediately.
 | 
						|
---
 | 
						|
---@param  data        uv.buffer
 | 
						|
---@param  host        string
 | 
						|
---@param  port        integer
 | 
						|
---@return integer|nil success
 | 
						|
---@return uv.error.message|nil err
 | 
						|
---@return uv.error.name|nil err_name
 | 
						|
function udp:try_send(data, host, port) end
 |