我找到了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 => {}
最佳答案
可以将属性移动到match语句:
impl Foo {
pub fn new(p: FooParams) -> Foo {
#[allow(deprecated)]
match p {
FooParams::Old => {}
FooParams::New => {}
}
}
}
您的板条箱中
Old
的其他用法将继续发出警告。