[][src]Function encoding_c_mem::encoding_mem_copy_ascii_to_basic_latin

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

Copies ASCII from source to destination zero-extending it to UTF-16 up to the first non-ASCII byte (or the end of the input if it is ASCII in its entirety).

The length of the destination buffer must be at least the length of the source buffer.

Returns the number of u16s written.

Panics

Panics if the destination buffer is shorter than stated above.

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.)