diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-12 01:49:58 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-12 05:56:52 +0000 |
| commit | 3b8e1f309e16b63069ede2e7bf0dfb8d7dbae959 (patch) | |
| tree | 769f9c1aea27d3032d4308816757ca6a1953ce30 /src/libsyntax/util | |
| parent | 8104df27ecdc6e6f85f7b126837a296cf63f0e99 (diff) | |
| download | rust-3b8e1f309e16b63069ede2e7bf0dfb8d7dbae959.tar.gz rust-3b8e1f309e16b63069ede2e7bf0dfb8d7dbae959.zip | |
Implement `Into<Vec<T>>` for `SmallVector<T>`
Diffstat (limited to 'src/libsyntax/util')
| -rw-r--r-- | src/libsyntax/util/small_vector.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/util/small_vector.rs b/src/libsyntax/util/small_vector.rs index 8b07b21c578..9548805c1f8 100644 --- a/src/libsyntax/util/small_vector.rs +++ b/src/libsyntax/util/small_vector.rs @@ -29,6 +29,16 @@ enum SmallVectorRepr<T> { Many(Vec<T>), } +impl<T> Into<Vec<T>> for SmallVector<T> { + fn into(self) -> Vec<T> { + match self.repr { + Zero => Vec::new(), + One(t) => vec![t], + Many(vec) => vec, + } + } +} + impl<T> FromIterator<T> for SmallVector<T> { fn from_iter<I: IntoIterator<Item=T>>(iter: I) -> SmallVector<T> { let mut v = SmallVector::zero(); |
