Added section to Unstable Book.

This commit is contained in:
Alexander Regueiro 2018-10-22 02:55:01 +01:00
parent 4751953d5f
commit 1cda3c3b49
1 changed files with 34 additions and 0 deletions

View File

@ -0,0 +1,34 @@
# `trait_alias`
The tracking issue for this feature is: [#41517]
[#41417]: https://github.com/rust-lang/rust/issues/41517
------------------------
The `trait_alias` feature adds support for trait aliases. These allow aliases
to be created for one or more traits (currently just a single regular trait plus
any number of auto-traits), and used wherever traits would normally be used as
either bounds or trait objects.
```rust
#![feature(trait_alias)]
trait Foo = std::fmt::Debug + Send;
trait Bar = Foo + Sync;
// Use trait alias as bound on type parameter.
fn foo<T: Foo>(v: &T) {
println!("{:?}", v);
}
pub fn main() {
foo(&1);
// Use trait alias for trait objects.
let a: &Bar = &123;
println!("{:?}", a);
let b = Box::new(456) as Box<dyn Foo>;
println!("{:?}", b);
}
```