8个版本
0.1.7 | 2021年8月16日 |
---|---|
0.1.6 | 2021年8月13日 |
0.1.3 | 2021年4月22日 |
0.1.2 | 2021年3月23日 |
#7 in #固有
21KB
309 行
impl_trait!
TL;DR:此功能添加了 impl_trait!
,允许您进行
struct Foo;
trait Bar {}
impl_trait! {
/// Yes, you can write docs here.
impl Foo {
/// You can write docs here too.
fn as_dyn_bar(&self) -> &dyn Bar {
self
}
/// You can even write docs here!
impl trait Bar {
}
}
}
以下是一些需要注意的事项
- 您可以在主
impl<T> Foo
块中定义泛型。 - 您可以使用
impl trait<T> Bar
在特质实现中定义泛型。 - 遗憾的是,我们无法让rustdoc将特质实现以某种方式输出为类型的“固有”部分。它们仍将出现在单独的“特质实现”部分中,而不是作为适当实现块的一部分。
关于许可的说明
这是一个过程宏。它基本上实现了一种简单的语法糖,您可以轻松手动去糖。
实际上,手动去糖可能比写一个过程宏来为您做这件事更容易!
尽管如此,是的,此代码是AGPLv3许可的。这是最严格的开放源代码许可。如果您不喜欢,那就废除版权吧?
幸运的是,AGPLv3包含许多漏洞,如系统库例外,以及第13条特别以“如果您修改程序”开头的事实,即它明确不适用于您仅使用crates.io上的此crate的普通版本的情况。
此外,此代码很糟糕,请勿复制。
许可
impl_trait - Rust proc macro that significantly reduces boilerplate
Copyright (C) 2021 Soni L.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
依赖项
~1.5MB
~36K SLoC