Sparkly Sandwich 🥪
This release makes some fundamental and hard changes to the API with respect to error handlers and encoding type names in the library.
error_handler
types now takes 4 parameters instead of 3. This was the addition of 1 extra parameter, which represents any prepared but unwritten characters to the output stream. More information can be found at this point in the documentation.encode_state
/decode_state
/state
types are attempted to pass to thereplacement_code_units
/replacement_code_points
/maybe_replacement_code_units
/maybe_replacement_code_points
functions, if at all possible. This allows for a specific state type to be properly.ztd::text::propagate_error
is now available. This properly filters a partially-completed transcode operation (that fails at thedecode_result
step, for example) and pushes it through theencode
part of the process with the appropriateerror_handler
. This function helps get the novelty and issues done right.- The names of the counting functions have been changed (as debated in #16). Thank you to everyone who participated and made it happen!
- All the names of encoding types (
utf8
,utf16
, etc.) are now objects, and their types are now suffixed with_t
. This is becase 99.9% of the time, one just wants to use the encoding object, not create a new instance every single time they use it (thanks for the push here @hanickadot !)
The documentation has been vastly improved in many places, as well, to make it easier to find out specific kinds of information. It still needs more work, but that's why this isn't a v1.0.0 library yet!
Go forth, and text to your heart's delight!
💚,
ThePhD & Shepherd's Oasis