impl<T> From<&'a [T]> for Slice<'a, T> {
fn from(xs: &'a [T]) -> Self {
- Slice {
- data: unsafe { &*(xs.as_ptr() as *const [T; 0]) },
- len: xs.len(),
- }
+ Slice { data: unsafe { &*(xs.as_ptr() as *const [T; 0]) }, len: xs.len() }
}
}
// be safely called on `Buffer`s created by *this* `proc_macro`.
fn to_vec<T: Copy>(b: Buffer<T>) -> Vec<T> {
unsafe {
- let Buffer {
- data,
- len,
- capacity,
- ..
- } = b;
+ let Buffer { data, len, capacity, .. } = b;
mem::forget(b);
Vec::from_raw_parts(data, len, capacity)
}
mem::drop(to_vec(b));
}
- Buffer {
- data,
- len,
- capacity,
- extend_from_slice,
- drop,
- }
+ Buffer { data, len, capacity, extend_from_slice, drop }
}
}