view teal-src/net/http/parser.d.tl @ 12956:52fcdfe710ca

storagemanager: Add keyval+ (combined keyval + map) store type This combines the two most common store types, which modules often end up opening with both interfaces separately anyway. As well as combining them, I've taken the opportunity to improve some of the method names to make them clearer.
author Matthew Wild <mwild1@gmail.com>
date Tue, 27 Sep 2022 17:46:27 +0100
parents a8eb838fc6cf
children
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