macro_rules! prt {
($var: expr) => {
println!(
"{:2} {:2} {:p} {:?} {:?}",
$var.len(),
$var.capacity(),
&$var,
$var.as_ptr(),
$var
);
};
}
fn main() {
let mut animals = vec![String::from("cat"), String::from("dog")];
prt!(animals);
prt!(animals[0]);
prt!(animals[1]);
println!();
animals.extend([String::from("mouse")]);
prt!(animals);
prt!(animals[0]);
prt!(animals[1]);
prt!(animals[2]);
println!();
animals[0].push_str(" is the most dangerous animal");
prt!(animals);
prt!(animals[0]);
prt!(animals[1]);
prt!(animals[2]);
}
2 2 0x7ffeaaaa5a98 0x5e44f7653b80 ["cat", "dog"]
3 3 0x5e44f7653b80 0x5e44f7653bc0 "cat"
3 3 0x5e44f7653b98 0x5e44f7653be0 "dog"
3 4 0x7ffeaaaa5a98 0x5e44f7653c20 ["cat", "dog", "mouse"]
3 3 0x5e44f7653c20 0x5e44f7653bc0 "cat"
3 3 0x5e44f7653c38 0x5e44f7653be0 "dog"
5 5 0x5e44f7653c50 0x5e44f7653c00 "mouse"
3 4 0x7ffeaaaa5a98 0x5e44f7653c20 ["cat is the most dangerous animal", "dog", "mouse"]
32 32 0x5e44f7653c20 0x5e44f7653c90 "cat is the most dangerous animal"
3 3 0x5e44f7653c38 0x5e44f7653be0 "dog"
5 5 0x5e44f7653c50 0x5e44f7653c00 "mouse"