( TCH | 2021. 04. 18., v – 14:45 )

Mert ha mindenre, ami kijön az unsafe blokkból, hirtelen igyekszünk kikényszeríteni ugyanazt az ellenőrzést, akkor az unsafe blokk értelmét veszti koncepcionálisan, mert nem tudsz igazából semmit tenni, amit ne lehetett volna safe módban, nem lesz átjárás.

Dehogynem lesz átjárás, csak épp az átjáró adatok validálva lesznek. Az unsafe lényege nem az, hogy direkt átadhass rossz adatokat, hanem az, hogy megtehess olyat, amire a nyelv bereklamál safe módban.

Igen, ciki, hogy ez egy safe blokkban fog adott esetben a lábadra esni, jobb volna, ha nem tenné, ezért mondtam, hogy ez szerintem egy elfogadható kompromisszum, hogy ezzel tisztában kell lenni.

Hogy legyen vele tisztába az, aki nem ismeri a bejövő adatok természetét, mert azok nem az ő kódjából érkeznek?

Ettől még a baj a safe részben lesz.

Erről beszéltem idáig. Örülök, hogy konszenzusra jutottunk.

Az pedig, hogy ki írja a kódot, teljesen lényegtelen.

Nem azon volt a hangsúly, hogy ki írja a kódot, hanem, hogy ha felhasznál egy libet és nem tudja, hogy az adott függvény hogy old meg valamit, akkor most hiba volt-e a részéről, hogy támaszkodott a safe módra, vagy sem? Mert ha hiba, akkor viszont át kell néznie a felhasznált library kódját, ami ha soktíz kB-ra rúg, az nagyon "meggyorsítja" a fejlesztést. A safe mód lényege a Rust userek szerint pont az lenne, hogy az ember ne követhessen el triviális hibákat, márpedig, ha egy sima print crash-t okoz, mert a kapott referencia invalid memóriacímre mutatott, az bizony triviális hiba, hiszen a delikvens egy meghívást, meg egy kiiratást csinált, nem többet.