The most important trait for conversion is From. Implementing it means defining how to obtain a type from another.
We present this on the example of DoubleVec[6]. Its concept is simple, when you construct it out of a Vec, it doubles all its elements. For this purpose, we implement From<Vec<T>> [11] with a where clause specifying T: MulAssign<i32>[13], which means that the trait will be implemented for all types that can be assigned to the result of a multiplication with an integer. Or, in terms of code, all types that allow the following, assuming the t variable is of the T type:
t *= 2;
The actual implementation should be self-explanatory, we simply multiply every element in the vector by two and wrap it in our DoubleVec[19]. Afterwards, we implement From as well for slices of the same type [25].