summaryrefslogtreecommitdiffstats
path: root/third_party/rust/extend/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/extend/README.md')
-rw-r--r--third_party/rust/extend/README.md32
1 files changed, 32 insertions, 0 deletions
diff --git a/third_party/rust/extend/README.md b/third_party/rust/extend/README.md
new file mode 100644
index 0000000000..ffa19e951a
--- /dev/null
+++ b/third_party/rust/extend/README.md
@@ -0,0 +1,32 @@
+# extend
+
+[![Crates.io](https://img.shields.io/crates/v/extend.svg)](https://crates.io/crates/extend)
+[![Docs](https://docs.rs/extend/badge.svg)](https://docs.rs/extend)
+[![dependency status](https://deps.rs/repo/github/davidpdrsn/extend/status.svg)](https://deps.rs/repo/github/davidpdrsn/extend)
+[![Build status](https://github.com/davidpdrsn/extend/workflows/CI/badge.svg)](https://github.com/davidpdrsn/extend/actions)
+![maintenance-status](https://img.shields.io/badge/maintenance-passively--maintained-yellowgreen.svg)
+
+Create extensions for types you don't own with [extension traits] but without the boilerplate.
+
+Example:
+
+```rust
+use extend::ext;
+
+#[ext]
+impl<T: Ord> Vec<T> {
+ fn sorted(mut self) -> Self {
+ self.sort();
+ self
+ }
+}
+
+fn main() {
+ assert_eq!(
+ vec![1, 2, 3],
+ vec![2, 3, 1].sorted(),
+ );
+}
+```
+
+[extension traits]: https://dev.to/matsimitsu/extending-existing-functionality-in-rust-with-traits-in-rust-3622