相关疑难解决方法(0)

有没有一种方法可以将多个派生别名为单个派生?

当使用newtype模式时,我经常会得到冗长的信息:

extern crate derive_more;
use derive_more::*;

#[derive(Add, Sub, Mul, Div, ..., Copy, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
struct Foo(i32);
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以将其简化为以下形式:

#[derive(Num)]
struct Foo(i32);
Run Code Online (Sandbox Code Playgroud)

Num派生宏在哪里?

我发现了这一点,但似乎无法扩展属性中的宏。 此答案讨论了必须如何将属性附加到项目,排除了这一点:

#[proc_macro_derive(Num)]
pub fn num_derive(_: TokenStream) -> TokenStream {
    let gen = quote! {
        #[derive(Add, Sub, Mul, Div, ..., Copy, Clone, Debug, Eq, PartialEq, Hash, Ord, PartialOrd)]
    };
    gen.into()
}
Run Code Online (Sandbox Code Playgroud)

macros traits rust

6
推荐指数
1
解决办法
92
查看次数

如何将任意 Markdown 文件包含为文档属性?

如果readme Cargo.toml设置了键,doc.rs 会在 crate 的索引页面上呈现 README。在cargo doc本地运行时有没有办法模拟这一点?

如果我添加:

#![doc = r###"contents
of
README.md
here
"###]
Run Code Online (Sandbox Code Playgroud)

作为字面意思,我得到了我正在寻找的行为,但是内联整个 README.md 的副本对于进行更新非常不方便。

我试过:

#![doc = include!("README.md")]
Run Code Online (Sandbox Code Playgroud)

但这给出了一个错误:

error: unexpected token: `include`
 --> src/lib.rs:3:10
  |
3 | #![doc = include!("README.md")]
  |          ^^^^^^^
Run Code Online (Sandbox Code Playgroud)

rust rustdoc

5
推荐指数
1
解决办法
826
查看次数

如何将Rust模块文档保存在单独的Markdown文件中?

Rust的这部分内容似乎暗示可以将Rust文档保存在单独的.md文件中,但是没有说明如何将这些.md文件重新包含在内。这是如何运作的?

documentation rust rustdoc

2
推荐指数
2
解决办法
100
查看次数

标签 统计

rust ×3

rustdoc ×2

documentation ×1

macros ×1

traits ×1