Box
เป็นโครงสร้างข้อมูลที่ยอมให้เราย้ายข้อมูลจาก stack ไปไว้ใน heap ได้
Box
คือโครงสร้างที่รู้จักกันในอีกชื่อว่า smart pointer เพราะว่ามันครอบครองพอยเตอร์ ที่ชี้ไปยังข้อมูลของเราใน heap
และด้วยเหตุที่ Box
เป็น struct ที่เรารู้ขนาดแน่นอน (เพราะว่ามันแค่ถือครองพอยเตอร์) มันจึงเป็นตัวเลือกที่ถูกนำมาใช้บ่อยๆ เพื่อเก็บการอ้างอิงไปยังของชิ้นอื่นใน struct เมื่อต้องการขนาดของฟิลด์ที่แน่นอน
โดยปกติ Box
สามารถใช้ได้จากทุกที่:
Box::new(Foo { ... })