File

teal-src/net/http/parser.d.tl @ 12763:d26eefe98d09

util.dbuffer: Add efficient shortcuts for discard() in certain cases If the buffer is already empty, nothing to do. If we're throwing away the whole buffer, we can just empty it and avoid read_chunk() (which in turn may collapse()). These shortcuts are much more efficient.
author Matthew Wild <mwild1@gmail.com>
date Tue, 11 Oct 2022 11:37:55 +0100
parent 12609:a8eb838fc6cf
line wrap: on
line source

local record httpstream
	feed : function(httpstream, string)
end

local type sink_cb = function ()

local record httppacket
	enum http_method
		"HEAD"
		"GET"
		"POST"
		"PUT"
		"DELETE"
		"OPTIONS"
		-- etc
	end
	method : http_method
	record url_details
		path : string
		query : string
	end
	url : url_details
	path : string
	enum http_version
		"1.0"
		"1.1"
	end
	httpversion : http_version
	headers : { string : string }
	body : string | boolean
	body_sink : sink_cb
	chunked : boolean
	partial : boolean
end

local enum error_conditions
	"cancelled"
	"connection-closed"
	"certificate-chain-invalid"
	"certificate-verify-failed"
	"connection failed"
	"invalid-url"
	"unable to resolve service"
end

local type success_cb = function (httppacket)
local type error_cb = function (error_conditions)

local enum stream_mode
	"client"
	"server"
end

local record lib
	new : function (success_cb, error_cb, stream_mode) : httpstream
end

return lib