我找到Can I mark a function as deprecated?并在我自己的箱子中使用它:
pub enum FooParams {
#[deprecated(since = "0.0.1", note = "use `FooParams::New` instead")]
Old,
New,
}
pub struct Foo;
impl Foo {
pub fn new(p: FooParams) -> Foo {
match p {
FooParams::Old => {}
FooParams::New => {}
}
Foo
}
}
这适用于外部包装箱,并警告他们不要使用FooParams::Old
。
它也适用于我的箱子,产生恼人的警告。有没有办法禁用此警告?
我试过了,但警告仍然存在:
#[allow(deprecated)]
FooParams::Old => {}
答案 0 :(得分:3)
您可以将属性移动到匹配语句:
impl Foo {
pub fn new(p: FooParams) -> Foo {
#[allow(deprecated)]
match p {
FooParams::Old => {}
FooParams::New => {}
}
}
}
您的箱子中Old
的其他用法将继续发出警告。