| 7 | use std::simd::Mask; |
| 8 | |
| 9 | fn main() { |
| 10 | // get & get_mut |
| 11 | let mut a = [1, 2, 3, 4, 5]; |
| 12 | let mut i = 0; |
| 13 | let _v = a.get(i); |
| 14 | let mut _v_mut = a.get_mut(i); |
| 15 | |
| 16 | // ===== slice: get (range) ===== |
| 17 | let a_get_r: [u32; 5] = [1, 2, 3, 4, 5]; |
| 18 | let s_get_r: &[u32] = &a_get_r; |
| 19 | let _v_get_r = s_get_r.get(1..4); |
| 20 | |
| 21 | // ===== slice: get_mut (range) ===== |
| 22 | let mut a_get_mut_r: [u32; 5] = [1, 2, 3, 4, 5]; |
| 23 | let s_get_mut_r: &mut [u32] = &mut a_get_mut_r; |
| 24 | let _v_get_mut_r = s_get_mut_r.get_mut(1..4); |
| 25 | |
| 26 | |
| 27 | // spilt_at |
| 28 | let mut slice = [1,2,3,4,5]; |
| 29 | let _s = slice.split_at(2); |
| 30 | let mut _s_m = slice.split_at_mut(2); |
| 31 | |
| 32 | let mut slice = [1,2,3,4,5]; |
| 33 | slice.swap(0,2); |
| 34 | |
| 35 | let mut str:[u8;5] = [44,44,44,44,44]; |
| 36 | let chr: u32 = 45; |
| 37 | let _s = str.as_ascii(); |
| 38 | let _c = std::char::from_u32(chr); |
| 39 | |
| 40 | // ===== [u8]::as_ascii ===== |
| 41 | let bytes_slice: &[u8] = b"world"; |
| 42 | let _ascii_slice = bytes_slice.as_ascii(); |
| 43 | |
| 44 | // ===== str::get (range) ===== |
| 45 | let sbuf: [u8; 5] = *b"hello"; |
| 46 | let st: &str = unsafe { |
| 47 | let p: *const [u8; 5] = &sbuf; |
| 48 | let p: *const [u8] = p as *const [u8]; |
| 49 | &*(p as *const str) |
| 50 | }; |
| 51 | let _st_get = st.get(1..4); |
| 52 | |
| 53 | // ===== str::get_mut (range) ===== |
| 54 | let mut sbuf_mut: [u8; 5] = *b"hello"; |
| 55 | let st_mut: &mut str = unsafe { |
| 56 | let p: *mut [u8; 5] = &mut sbuf_mut; |
| 57 | let p: *mut [u8] = p as *mut [u8]; |
| 58 | &mut *(p as *mut str) |
| 59 | }; |
| 60 | let _st_get_mut = st_mut.get_mut(1..4); |
| 61 | |
| 62 | // ===== ptr::Alignment::new ===== |
| 63 | let _al = Alignment::new(8); |
| 64 | |
| 65 | // ===== Layout::from_size_align ===== |
| 66 | let _layout = Layout::from_size_align(16, 8); |