The code doesn't make sense. You can't cast (as) to an arbitrary, unknown type. You can't perform random >> and + operations on an arbitrary, unknown type. You can't return a usize as an arbitrary, unknown type.
If the actual XY goal is to go from size_of::<T> bytes to a T, there's no sound way to do that for an arbitrary T either.
If that's not your goal, you're going to have to explain more.
To get a little-endian usize from a slice of bytes starting at a certain index, you can use usize::from_le_bytes(byte_vector[index..index + size_of::<usize>()].try_into().unwrap()). If you need to break up the entire slice into usizes, you could write byte_vector.chunks_exact(size_of::<usize>()).map(|chunk| usize::from_le_bytes(chunk.try_into().unwrap())), which produces an iterator of usizes.