teal-src/util/encodings.d.tl
author Matthew Wild <mwild1@gmail.com>
Fri, 02 Dec 2022 20:32:36 +0000
changeset 12799 87424cbedc55
parent 12391 05c250fa335a
permissions -rw-r--r--
util.hashring: Support associating arbitrary data with nodes In this API, a 'node' is always a simple text string. Sometimes the caller may have a more complex structure representing a node, but the hash ring is really only concerned with the node's name. This API change allows :add_nodes() to take a table of `node_name = value` pairs, as well as the simple array of node names previously accepted. The 'value' of the selected node is returned as a new second result from :get_node(). If no value is passed when a node is added, it defaults to `true` (as before, but this was never previously exposed).

-- TODO many actually return Maybe(String)
local record lib
	record base64
		encode : function (s : string) : string
		decode : function (s : string) : string
	end
	record stringprep
		nameprep : function (s : string, strict : boolean) : string
		nodeprep : function (s : string, strict : boolean) : string
		resourceprep : function (s : string, strict : boolean) : string
		saslprep : function (s : string, strict : boolean) : string
	end
	record idna
		to_ascii : function (s : string) : string
		to_unicode : function (s : string) : string
	end
	record utf8
		valid : function (s : string) : boolean
		length : function (s : string) : integer
	end
	record confusable
		skeleton : function (s : string) : string
	end
	version : string
end
return lib