struct Wrapper(T); struct RefWrapper<'a, T>(&'a T); fn borrow(v: &T) -> &T { &v } fn slice(v: &[T], s: usize, e: usize) -> &[T] { &v[s..e] } fn u8() -> [u8; 10] { [1,2,3,4,5,6,7,8,9,10] } fn i8() -> [i8; 1] { [1] } fn u16() -> [u16; 6] { [1,2,3,4,5,6] } fn i16() -> [i16; 1] { [1] } fn u32() -> [u32; 4] { [1,2,3,4] } fn i32() -> [i32; 1] { [1] } fn u64() -> [u64; 3] { [1,2,3] } fn i64() -> [i64; 1] { [1] } fn u128() -> [u128; 3] { [1,2,3] } fn i128() -> [i128; 1] { [1] } fn f32() -> [f32; 3] { [1.0,2.0,3.0] } fn f64() -> [f64; 1] { [1.0] } fn usize() -> [usize; 3] { [1,2,3] } fn isize() -> [isize; 1] { [1] } fn str() -> [&'static str; 3] { ["1","2","3"] } fn wrapped() -> Wrapper<[u8; 9]> { Wrapper([9,8,7,6,5,4,3,2,1]) } fn wrapped_ref(v: &[u8; 9]) -> RefWrapper<[u8; 9]> { RefWrapper(v) } fn multi() -> [[u8; 3]; 3] { [[1,2,3],[4,5,6],[7,8,9]] } fn multi_w() -> Wrapper<[[u8; 3]; 3]> { Wrapper([[9,8,7],[6,5,4],[3,2,1]]) } fn multi_ref_w(v: &[[u8; 3]; 3]) -> RefWrapper<[[u8; 3]; 3]> { RefWrapper(v) } fn main() { let _u8 = u8(); borrow(&_u8); borrow(&_u8[1.._u8.len()-1]); let _i8 = i8(); borrow(&_i8); borrow(&_i8[..]); let _u16 = u16(); borrow(&_u16); borrow(&_u16[.._u16.len()-1]); let _i16 = i16(); borrow(&_i16); borrow(&_i16[1..]); let _u32 = u32(); borrow(&_u32); borrow(&_u32[2..=2]); let _i32 = i32(); borrow(&_i32); borrow(&_i32[1..]); let _u64 = u64(); borrow(&_u64); borrow(&_u64[1..]); let _i64 = i64(); borrow(&_i64); borrow(&_i64[1..]); let _u128 = u128(); borrow(&_u128); borrow(&_u128[1..]); let _i128 = i128(); borrow(&_i128); borrow(&_i128[1..]); let _f32 = f32(); borrow(&_f32); borrow(&_f32[1..]); let _f64 = f64(); borrow(&_f64); borrow(&_f64[1..]); let _usize = usize(); borrow(&_usize); borrow(&_usize[1..]); let _isize = isize(); borrow(&_isize); borrow(&_isize[1..]); let _str = str(); borrow(&_str); borrow(&_str[1..]); let _wrapped = wrapped(); borrow(&_wrapped); let _wrapped_ref = wrapped_ref(&_wrapped.0); let _multi = multi(); borrow(&_multi); let _multi_w = multi_w(); borrow(&_multi_w); let _multi_ref_w = multi_ref_w(&_multi_w.0); let _vec = vec![1,2,3,4,5,6,7,8]; borrow(&_vec[1..2]); slice(&_vec, 1, 2); slice(&_u8, 0, 0); }