take — take first N. drain — remove all elements.
take:
drain:
1let mut v = vec![1, 2, 3, 4, 5];23// take: [1,2,3], v remains [4,5]4let taken: Vec<i32> = v.iter().take(3).cloned().collect();56// drain: remove all, v becomes empty7let drained: Vec<i32> = v.drain(..).collect();8// v is now empty
Key: take for prefix, drain for complete removal.