Skip to content

Commit

Permalink
rollup merge of #23923: steveklabnik/gh23688
Browse files Browse the repository at this point in the history
  • Loading branch information
alexcrichton committed Apr 1, 2015
2 parents 1d5ef75 + 371ba00 commit 6ebb6e6
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/doc/trpl/traits.md
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,29 @@ One last thing about traits: generic functions with a trait bound use
dispatched. What's that mean? Check out the chapter on [static and dynamic
dispatch](static-and-dynamic-dispatch.html) for more.

## Multiple trait bounds

You’ve seen that you can bound a generic type parameter with a trait:

```rust
fn foo<T: Clone>(x: T) {
x.clone();
}
```

If you need more than one bound, you can use `+`:

```rust
use std::fmt::Debug;

fn foo<T: Clone + Debug>(x: T) {
x.clone();
println!("{:?}", x);
}
```

`T` now needs to be both `Clone` as well as `Debug`.

## Where clause

Writing functions with only a few generic types and a small number of trait
Expand Down

0 comments on commit 6ebb6e6

Please sign in to comment.