UGH omg and now they use the EXACT thing rust can't do. variadic generic parameters https://ztdtext.readthedocs.io/en/latest/design/lucky%207%20extensions/unicode%20encoding.html
There are 2 ways to do this, one for decisions that can be made at compile time, and one for decisions that can be made at runtime (e.g., over a
variant_encoding<X, Y, Z>).