Crates.io | deprecate-until |
lib.rs | deprecate-until |
version | 0.1.1 |
source | src |
created_at | 2023-07-15 14:23:49.924671 |
updated_at | 2023-11-29 21:26:32.974276 |
description | Rust attribute to force deprecated item removal at a specified version |
homepage | |
repository | https://github.com/samueltardieu/deprecate-until |
max_upload_size | |
id | 917245 |
size | 27,548 |
This crate introduces a new deprecate_until
attribute which helps
crate authors not to remove to delete obsolete items when some version
is reached. When the specified semver condition is verified, the crate
will not compile anymore and hopefully this will be caught by the CI
or by cargo install
before the release actually happens.
The deprecate_until
attribute supports the same arguments as
deprecate
, i.e., note
and since
. It also requires a remove
argument, which is a semver requirement
expression in a string.
The following code
use deprecate_until::deprecate_until;
#[deprecate_until(remove = ">= 4.x", note = "use `some_new_function` instead")]
fn old_function() {
todo!()
}
will give a warning when version 3.8 of the crate is used in a project:
warning: use of deprecated function `old_function`: use `some_new_function` instead (removal scheduled for version >= 4.x)
|
4 | fn old_function() {
| ^^^^^^^^^^^^
It will also cause a compilation error in version 4.0.0 of the crate if you forgot to remove it:
error: version `4.0.0` matches `>= 4.x`, item should be removed
|
3 | #[deprecate_until(remove = ">= 4.x", note = "use `some_new_function` instead")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^