Как исправить "предупреждение: неиспользуемая переменная" для перечисления с именованными параметрами в Rust?
У меня есть перечисление как:
pub enum Tag<'a> {
Container { c: Vec<Tag<'a>> },
// ...
}
когда я пытаюсь соответствовать:
impl<'a> Display for Tag<'a> {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
match *self {
Tag::Container { ref c } => write!(f, "{}", "container"),
// ...
}
}
}
Я получил:
warning: unused variable: `c`, #[warn(unused_variables)] on by default
|
65 | Tag::Container{ref c} => write!(f, "{}", "container"),
и в некоторых других местах.
Я пытался использовать _
просто удалить ref c
но все это вызывает ошибки.
1 ответ
Решение
Ты можешь использовать ..
:
match *self {
Tag::Container { .. } => write!(f, "{}", "container"),
Это описано в книге, в частности, в разделе " Игнорирование привязок", где он используется для игнорирования значений, заключенных в вариант enum:
enum OptionalTuple {
Value(i32, i32, i32),
Missing,
}
let x = OptionalTuple::Value(5, -2, 3);
match x {
OptionalTuple::Value(..) => println!("Got a tuple!"),
OptionalTuple::Missing => println!("No such luck."),
}