using libidn;

public int main (string[] args)
{
	{
		//var str = "This is an UTF-8 encoded string. / Tohle je řetězec zakódovaný v UTF-8.";
		var str = "Tento řetězec je zakódovaný v UTF-8.";

		var ucs4 = utf8_to_ucs4_fast (str);

		string output;


		var status = Punycode.encode (ucs4, null, out output);

		stdout.puts (output);
		stdout.puts ("\n");

		uint8[] flags;
		status = Punycode.decode (output, out ucs4, out flags);

		output = ucs4_to_utf8 (ucs4);


		stdout.puts (output);
		stdout.puts ("\n");

	}

	{
		string output;
		var str = "MiXeD-CaSe";
		//string output;
		var code = Stringprep.stringprep (str, out output, Stringprep.xmpp_nodeprep_profile);
		stdout.printf ("Input: %s\n", str);
		stdout.printf ("Return code: %d\n", code);
		stdout.printf ("Output length %ld\n", output.length);
		stdout.printf ("Output: %s\n", output);

		str = "prohibited character";
		code = Stringprep.stringprep (str, out output, Stringprep.xmpp_nodeprep_profile);
		stdout.printf ("Input: %s\n", str);
		stdout.printf ("Return code: %d\n", code);
		stdout.printf ("Output: %s\n", output);

	}

	return 0;
}