3 use std::collections::HashSet;
4 use std::collections::VecDeque;
5 use std::rc::{self, Rc};
6 use std::sync::{self, Arc};
13 vec![1].clone(); // ok, not a Copy type
14 Some(vec![1]).clone(); // ok, not a Copy type
18 fn clone_on_ref_ptr() {
19 let rc = Rc::new(true);
20 let arc = Arc::new(true);
22 let rcweak = Rc::downgrade(&rc);
23 let arc_weak = Arc::downgrade(&arc);
32 rc::Weak::clone(&rcweak);
35 sync::Weak::clone(&arc_weak);
40 fn clone_on_copy_generic<T: Copy>(t: T) {
46 fn clone_on_double_ref() {
49 let z: &Vec<_> = y.clone();
51 println!("{:p} {:p}",*y, z);
54 fn iter_clone_collect() {
56 let v2 : Vec<isize> = v.iter().cloned().collect();
57 let v3 : HashSet<isize> = v.iter().cloned().collect();
58 let v4 : VecDeque<isize> = v.iter().cloned().collect();