我在用rust编写一个类库。这个类库有一些结构体或函数是处于测试阶段的,因此我想增加一个#[beta]
宏来标注这些方法。有没有什么方法使其他人在调用标注这个宏的结构体/函数时,编译期会发出类似warning: associated function is beta.
的waning
。
1
共 8 条评论, 1 页
我在用rust编写一个类库。这个类库有一些结构体或函数是处于测试阶段的,因此我想增加一个#[beta]
宏来标注这些方法。有没有什么方法使其他人在调用标注这个宏的结构体/函数时,编译期会发出类似warning: associated function is beta.
的waning
。
评论区
写评论这个rfc确实满足我的需求,感谢老哥,我去研究研究
--
👇
modraedlau: 在nightly的版本下其实可以使用
unstable
lib.rs
main.rs
不过这样如果引用及使用unstable的方法时会编译时出现error,如果要消除error,把
// #![feature(beta)]
的注释代码打开,但是这样完全可以通过编译也没有warning。如果想要完全自己实现一个
#[beta]
,可以自定义一个lint到rustc
:0089-loadable-lints在nightly的版本下其实可以使用
unstable
lib.rs
main.rs
不过这样如果引用及使用unstable的方法时会编译时出现error,如果要消除error,把
// #![feature(beta)]
的注释代码打开,但是这样完全可以通过编译也没有warning。如果想要完全自己实现一个
#[beta]
,可以自定义一个lint到rustc
:0089-loadable-lints感谢老哥,我去看看
--
👇
Neutron3529: 总觉得可以借助
deprecated
如果你真想做一个
beta
,可能需要仔细研究源代码中deprecated是如何实现的……这篇文章或许对你有所帮助
总觉得可以借助
deprecated
如果你真想做一个
beta
,可能需要仔细研究源代码中deprecated是如何实现的……这篇文章或许对你有所帮助
想在编译器就弹出警告,不是运行期。搜了下没有build_warning!这种宏。
--
👇
shaitao: 过程宏不是可以做到, 你在里面放println!
过程宏不是可以做到, 你在里面放println!
这样的话可能就破坏了预期的层级结构,并且粒度过大了:(
--
👇
gwy15: 加一个 unstable 的 feature,把对应的接口放到这个 feature 下
加一个 unstable 的 feature,把对应的接口放到这个 feature 下