1. What is the concept of a stack in data structures?
2. Explain ViewModel and how it handles configuration changes.
3. How do you improve the performance/memory footprint of your Rust program, without relying on any external crates, profilers, or architectural changes? Assume that logging and monitoring libraries etc. are all running on a separate process and do not consume resources.
4. What are the differences between structures and unions?
5. Implement a stack data structure.