utf8proc 0.1.2

Rust bindings to the utf8proc library
Documentation
use utf8proc::ErrorKind;
use utf8proc::transform::TransformOptions;
use utf8proc::transform::advanced::{MAX_DECOMPOSE_CHAR_LENGTH, MaybeMarkerCodepoint, TransformBufferError};
use utf8proc::transform::buffer::{MaybeUninitSlice, MaybeUninitSliceExt};
#[test]
fn no_errors() {
    let mut buffer = [MaybeMarkerCodepoint::from(0 as char); MAX_DECOMPOSE_CHAR_LENGTH];
    for c in char::MIN..=char::MAX {
        match utf8proc::transform::advanced::decompose_char(
            c,
            MaybeUninitSlice::from_init_slice_mut(&mut buffer),
            &TransformOptions::default(),
            None,
        ) {
            Ok((init, _)) => {
                assert!(init.len() <= MAX_DECOMPOSE_CHAR_LENGTH);
            }
            Err(TransformBufferError::InsufficientSpace(cause)) => panic!("{cause:?}"),
            Err(TransformBufferError::Other(cause)) => {
                assert!(matches!(cause.kind(), ErrorKind::NotAssigned), "{cause:?}",);
            }
        }
    }
}