1 个不稳定版本

0.1.0 2023 年 10 月 3 日

#4#cfg-attr

MIT/Apache

5KB

arg_attr

Crates.io Downloads Documentation License Dependency Status

根据配置条件检查指定接受的参数。

示例

简单却愚蠢的示例

#![allow(dead_code)]

use arg_attr::args;

#[args(_url: String)]
fn silly_drop() {
    drop(_url);
}

在上面的示例中,args 属性无条件指定了 silly_drop 函数的参数。单独使用时它相当无用,但可以与 #[cfg_attr(...)] 结合使用进行条件编译。

use pyo3::prelude::Python;
use qualifier_attr::qualifiers;
use arg_attr::args;

// At the moment of writing, `pyo3` does not support async functions.
// https://github.com/PyO3/pyo3/issues/1632
#[cfg_attr(feature="python", args(py: Python<'_>, url: &'str))]
#[cfg_attr(not(feature="python"), args(url: &'str), qualifiers(async))]
fn fetch() {
    todo!()
}

依赖项

~245–690KB
~16K SLoC