diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..5efb22b --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +`impl_trait!` +============ + +TL;DR: this adds `impl_trait!` which lets you do: + +```rust +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 { + } + } +} +``` + +A note on licensing +------------------- + +This is a proc macro. It basically implements a simple syntax sugar that you +can trivially desugar by hand. + +In fact, it's probably easier to desugar by hand than to write a dang proc +macro to do it for you! + +Nevertheless, yes, this is AGPLv3-licensed. If using an AGPLv3-licensed +proc macro/compiler plugin that doesn't even add its own code to your code +is a problem for you, you are welcome to contact us about highly expensive +commercial licenses. However, we would find it much more satisfying if you +told your employer to ride a cactus, because *this is a fucking compiler +plugin omg you do not need to care about the license unless you're literally +Godbolt Compiler Explorer or something*. + +Thankfully, the AGPLv3 comes with plenty of holes like the system library +exception, as well as the fact that clause 13 specifically starts with the +words "if you modify the Program" i.e. it explicitly doesn't apply if you're +just using the plain old crates.io version of this crate. + +Further, this code is awful, so please don't copy it. + +License +------- + +```text +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/>. +``` |