6 struct Ints {sum: Box<isize>, values: Vec<isize> }
8 fn add_int(x
: &mut Ints
, v
: isize) {
10 let mut values
= Vec
::new();
11 swap(&mut values
, &mut x
.values
);
13 swap(&mut values
, &mut x
.values
);
16 fn iter_ints
<F
>(x
: &Ints
, mut f
: F
) -> bool
where F
: FnMut(&isize) -> bool
{
17 let l
= x
.values
.len();
18 (0..l
).all(|i
| f(&x
.values
[i
]))
22 let mut ints
: Box
<_
> = Box
::new(Ints {sum: Box::new(0), values: Vec::new()}
);
23 add_int(&mut *ints
, 22);
24 add_int(&mut *ints
, 44);
26 iter_ints(&*ints
, |i
| {
27 println
!("isize = {:?}", *i
);
31 println
!("ints={:?}", ints
);