Rust programlama dilinde bellek güvenliği nasıl sağlanır?

Rust, özellikle sistem programlama için tasarlanmış bir programlama dilidir ve bellek güvenliğini minimum miktarda işlemci hızından ödün vererek sağlar. Rust’ın bellek yönetimi ve hata yönetimine yaklaşımının neye dayandığını, hangi kuralları ve mekanizmaları kullandığını açıklayabilir misiniz? Rust bu mekanizmaları nasıl kullanarak bellek güvenliği sağlar ve bellekle ilgili yaygın hataları (örneğin null dereference, buffer overflow, hanging pointers gibi) nasıl önler?