raw pointer 역참조
주소가 유효하고 정렬되어 있으며 aliasing 규칙을 깨지 않는지 확인한다.
컴파일러가 확인하지 못하는 다섯 작업만 허용하고, 나머지 대여 검사와 타입 검사는 계속 적용된다.
주소가 유효하고 정렬되어 있으며 aliasing 규칙을 깨지 않는지 확인한다.
문서의 safety 계약을 읽고 호출 전 조건을 코드로 보장한다.
전역 변경 상태가 데이터 경합 없이 접근되는지 동기화 전략을 둔다.
컴파일러가 모르는 불변조건을 타입 구현이 항상 지키도록 만든다.
현재 들어 있는 필드와 초기화 상태를 추적할 수 있을 때만 읽는다.
위험한 조작은 내부에 두고, 호출자는 안전한 함수와 타입만 사용하게 한다.
길이, 정렬, 수명, 중복 접근, 스레드 조건을 코드 근처에 명시한다.
unsafe 블록은 좁게 유지하고 테스트, Miri, 코드 리뷰로 계약을 확인한다.
unsafe는 러스트의 안전 장치를 모두 끄지 않는다.
컴파일러가 증명하지 못하는 특정 작업의 책임만 프로그래머에게 넘긴다.