我想玩BasicAuth的东西,因此我需要base64版本的字符串.所以我需要一个函数:String to base_64(String).
在Rust的字符串指南中,大多数时候$ str优先于String.所以我想适应这个想法.
但是使用&str在某种程度上比它看起来更难(我知道我的问题也与问题有关as_slice()).
其他问题的作者可以通过不使用as_slice()解决他的问题,有没有办法继续使用&str for me?
extern crate serialize; use serialize::base64::{ToBase64,MIME}; fn generate_base_string (n : &str) -> String { let mut config = serialize::base64::MIME; config.line_length = None; let bytes: & [u8] = n.as_bytes(); return bytes.to_base64(config); } fn generate_base<'a> (n : &'a str ) -> &'a str { let mut config = serialize::base64::MIME; config.line_length = None; let bytes: & [u8] = n.as_bytes(); let res2: String = bytes.to_base64(config); let res1: &'a str = res2.as_slice(); return res1; } #[test] fn right_base64() { let trig :&str = generate_base("string"); assert!(trig=="c3RyaW5n"); } // http://doc.rust-lang.org/guide-strings.html #[test] fn right_base64_string(){ // A `String` - a heap-allocated string assert!(generate_base_string("string")=="c3RyaW5n".to_string()); }
这是我在Rust的第一步,所以请不要吝啬我做错了什么.