Como puedo hacer, el vector es mutable dentro de la estructura

Como puedo hacer, el vector es mutable

pub struct Test<'a>{
    vec: &'a mut Vec<i32>,
}
impl<'a> Test<'a> {
    pub fn created()->Test<'a>{
        Test {vec: &'a mut Vec::new() }
    }
    pub fn add(&self, value: i32){  
        self.vec.push(value);
    }
}
expected `:`, found `mut`
Test {vec: &'a mut Vec::new() }
               ^~~

Esto es unpregunta similar pero

y la respuesta funciona, pero qué pasa si no quiero, puedes hacer esto, "aplicando el enlace de respuesta"

pub struct Test{
    vec: Vec<i32>,
}
impl Test {
    pub fn created()->Test {
        Test {vec: Vec::new() }
    }
    pub fn add(&mut self, value: i32){  
        self.vec.push(value);
    }
}
..//
let mut test: my::Test = my::Test::created();
test.add(1i32);

let mut test1: my::Test = my::Test::created();

test1 = test; <-- I do not want, you can do this
..//

como puedo hacer, el vector es mutable, sin hacer que sea toda la estructura

Respuestas a la pregunta(1)

Su respuesta a la pregunta