use std::str; fn main() { // -- FROM: vec of chars -- let src1: Vec = vec!['j','{','"','i','m','m','y','"','}']; // to String let string1: String = src1.iter().collect::(); // to str let str1: &str = &src1.iter().collect::(); // to vec of byte let byte1: Vec = src1.iter().map(|c| *c as u8).collect::>(); println!("Vec:{:?} | String:{:?}, str:{:?}, Vec:{:?}", src1, string1, str1, byte1); // -- FROM: vec of bytes -- // in rust, this is a slice // b - byte, r - raw string, br - byte of raw string let src2: Vec = br#"e{"ddie"}"#.to_vec(); // to String // from_utf8 consume the vector of bytes let string2: String = String::from_utf8(src2.clone()).unwrap(); // to str let str2: &str = str::from_utf8(&src2).unwrap(); // to vec of chars let char2: Vec = src2.iter().map(|b| *b as char).collect::>(); println!("Vec:{:?} | String:{:?}, str:{:?}, Vec:{:?}", src2, string2, str2, char2); // -- FROM: String -- let src3: String = String::from(r#"o{"livia"}"#); let str3: &str = &src3; let char3: Vec = src3.chars().collect::>(); let byte3: Vec = src3.as_bytes().to_vec(); println!("String:{:?} | str:{:?}, Vec:{:?}, Vec:{:?}", src3, str3, char3, byte3); // -- FROM: str -- let src4: &str = r#"g{'race'}"#; let string4 = String::from(src4); let char4: Vec = src4.chars().collect(); let byte4: Vec = src4.as_bytes().to_vec(); println!("str:{:?} | String:{:?}, Vec:{:?}, Vec:{:?}", src4, string4, char4, byte4); }