Skip to content

Commit

Permalink
Add description of + for multiple trait bounds
Browse files Browse the repository at this point in the history
  • Loading branch information
steveklabnik committed Mar 31, 2015
1 parent 80bf31d commit 371ba00
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 371ba00

Please sign in to comment.