Tut i Rustit Tabela e permbajtjeve

Kod Unsafe I Zgjuar

Smart pointerat priren të përdorin mjaft shpesh kod unsafe. Siç u përmend më parë, ato janë mjete të zakonshme për të ndërvepruar me nivelet më të ulëta të kujtesës në Rust.

Çfarë është kodi unsafe? Kodi unsafe sillet saktësisht si kodi normal i Rust, me përjashtim të disa aftësive për të cilat përpiluesi i Rust nuk mund të japë garanci.

Një aftësi kryesore e kodit unsafe është dereferencimi i një pointeri të papërpunuar. Kjo do të thotë të marrësh një pointer të papërpunuar drejt një pozicioni në kujtesë dhe të deklarosh "këtu ekziston një strukturë e dhënash!", duke e shndërruar në një përfaqësim të dhënash që mund ta përdorësh (p.sh. *const u8 në u8).

Rust nuk ka mënyrë për të ndjekur kuptimin e çdo bajti që shkruhet në kujtesë. Meqenëse Rust nuk mund të japë garanci për çfarë ekziston te një numër arbitrar i përdorur si pointer i papërpunuar, ai e vendos dereferencimin brenda një blloku unsafe { ... }.

Smart pointerat dereferencojnë pointera të papërpunuar gjerësisht, por janë të testuar mirë në atë që bëjnë.