]> git.proxmox.com Git - rustc.git/blame - src/test/run-pass/generic-static-methods.rs
New upstream version 1.14.0+dfsg1
[rustc.git] / src / test / run-pass / generic-static-methods.rs
CommitLineData
223e47cc
LB
1// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
223e47cc 11
c34b1796 12
1a4d82fc
JJ
13trait vec_utils<T> {
14 fn map_<U, F>(x: &Self, f: F) -> Vec<U> where F: FnMut(&T) -> U;
15}
970d7e83 16
1a4d82fc
JJ
17impl<T> vec_utils<T> for Vec<T> {
18 fn map_<U, F>(x: &Vec<T> , mut f: F) -> Vec<U> where F: FnMut(&T) -> U {
19 let mut r = Vec::new();
85aaf69f 20 for elt in x {
1a4d82fc 21 r.push(f(elt));
970d7e83 22 }
1a4d82fc 23 r
970d7e83 24 }
223e47cc 25}
1a4d82fc
JJ
26
27pub fn main() {
c30ab7b3 28 assert_eq!(vec_utils::map_(&vec![1,2,3], |&x| x+1), [2,3,4]);
1a4d82fc 29}