[][src]Function encoding_c_mem::encoding_mem_convert_latin1_to_utf8_partial

#[no_mangle]
pub unsafe extern "C" fn encoding_mem_convert_latin1_to_utf8_partial(
    src: *const u8,
    src_len: *mut usize,
    dst: *mut u8,
    dst_len: *mut usize
)

Converts bytes whose unsigned value is interpreted as Unicode code point (i.e. U+0000 to U+00FF, inclusive) to UTF-8 with potentially insufficient output space.

Writes the number of code units read into *src_len and the number of bytes written into *dst_len.

If the output isn't large enough, not all input is consumed.

Safety

If you want to convert into a &mut str, use encoding_mem_convert_latin1_to_str_partial() instead of using this function together with the unsafe method as_bytes_mut() on &mut str.

Undefined behavior

UB ensues if src and src_len don't designate a valid memory block, if src is NULL, if dst and dst_len don't designate a valid memory block, if dst is NULL or if the two memory blocks overlap. (If src_len is 0, src may be bogus but still has to be non-NULL and aligned. Likewise for dst and dst_len.)