生成自有字符串的简写方法

ric*_*lla 4 string ownership rust

给定以下结构(实际上,它比这个更大):

#[derive(Deserialize, Debug)]
struct Parameter {
    name: String,
    value: String,
}
Run Code Online (Sandbox Code Playgroud)

如果我想创建一个实例(用于测试等):

Parameter {
    name: "name".to_string(),
    value: "value".to_string()
}
Run Code Online (Sandbox Code Playgroud)

我必须结束to_string我所有的价值观。这有点烦人。是否有创建自有字符串的简写方法?

Jmb*_*Jmb 5

你总是可以用宏来缩短它:

macro_rules! s {
    ($s:expr) => { $s.to_string() }
}

#[derive(Debug)]
struct Parameter {
    name: String,
    value: String,
}

fn main() {
    println!("{:?}", Parameter { name: s!("foo"), value: s!("bar"), });
}
Run Code Online (Sandbox Code Playgroud)

操场