Convert hex to base64 (Cryptopals challenge 1)
pub fn hex_to_base64(hex: &amp;str) -&gt; String {
    encode(&amp;hex_to_bytes(hex))


I would not use self::base64::encode and instead refer to base64::encode here so that it is clearer what is being encoded.

}

pub fn hex_to_bytes(hex: &amp;str) -&gt; Vec&lt;u8&gt; {
    hex.chars()
        .collect::&lt;Vec&lt;_&gt;&gt;() //convert to slice-able


Given that you are doing hex, which is all in the ASCII range, you may want to use as_bytes() which will give you a slice of bytes without copying the whole string into a new Vec.

        .chunks(2)           //each char is one nibble


What happens if the string length isn't a multiple of two?

        .map(|byte| byte.iter().collect::&lt;String&gt;())


byte isn't correct here as it is a slice of chars. Further, if you don't use chars() as I suggest as above, you can use std::str::from_utf8 to get a &amp;str without allocating a new String.

        .map(|byte| u8::from_str_radix(&amp;byte[..], 16).unwrap())


byte really isn't correct here as you have a String.  Additionally, there is no need to take a slice.

        .collect()
}