about summary refs log tree commit diff
diff options
context:
space:
mode:
authorIlya Bobyr <ilya.bobyr@gmail.com>2020-06-04 23:15:35 -0700
committerIlya Bobyr <ilya.bobyr@gmail.com>2020-06-07 01:27:06 -0700
commitebb8722ea7b184ade7015fd1094475a18e1198f7 (patch)
treecebb59e39a5af47f25dbe0274f57f1ab528bd3b0
parent8f4dfa88399320eba07e9717f60a5c32d73299a3 (diff)
downloadrust-ebb8722ea7b184ade7015fd1094475a18e1198f7.tar.gz
rust-ebb8722ea7b184ade7015fd1094475a18e1198f7.zip
unstable book: default_free_fn
-rw-r--r--src/doc/unstable-book/src/library-features/default-free-fn.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/doc/unstable-book/src/library-features/default-free-fn.md b/src/doc/unstable-book/src/library-features/default-free-fn.md
new file mode 100644
index 00000000000..5dff73a94dd
--- /dev/null
+++ b/src/doc/unstable-book/src/library-features/default-free-fn.md
@@ -0,0 +1,45 @@
+# `default_free_fn`
+
+The tracking issue for this feature is: [#73014]
+
+[#73014]: https://github.com/rust-lang/rust/issues/73014
+
+------------------------
+
+Adds a free `default()` function to the `std::default` module.  This function
+just forwards to [`Default::default()`], but may remove repetition of the word
+"default" from the call site.
+
+Here is an example:
+
+```rust
+#![feature(default_free_fn)]
+use std::default::default;
+
+#[derive(Default)]
+struct AppConfig {
+    foo: FooConfig,
+    bar: BarConfig,
+}
+
+#[derive(Default)]
+struct FooConfig {
+    foo: i32,
+}
+
+#[derive(Default)]
+struct BarConfig {
+    bar: f32,
+    baz: u8,
+}
+
+fn main() {
+    let options = AppConfig {
+        foo: default(),
+        bar: BarConfig {
+            bar: 10.1,
+            ..default()
+        },
+    };
+}
+```