- 소개
- 1. 안전함과 불안전함을 마주하라
- 1.1. 안전함과 불안전함은 어떻게 상호작용하는가
- 1.2. 불안전함은 어떤 것을 할 수 있는가
- 1.3. 불안전함과 함께 일하는 것
- 2. 데이터 레이아웃
- 2.1. repr(Rust)
- 2.2. 이량 타입
- 2.3. 다른 표현 방식들
- 3. 소유권
- 3.1. 레퍼런스
- 3.2. 복제
- 3.3. 수명
- 3.4. 수명의 한계
- 3.5. 수명 생략
- 3.6. 무제한 수명
- 3.7. 상계 트레잇 제한
- 3.8. 부분타입 다형성과 변성
- 3.9. 해제 검사
- 3.10. PhantomData
- 3.11. 대여 쪼개기
- 4. 타입 변환
- 4.1. 강제 변환
- 4.2. 점 연산자
- 4.3. 변형
- 4.4. 변질
- 5. 초기화되지 않은 메모리
- 5.1. 검사받는
- 5.2. 해제 표기
- 5.3. 검사받지 않는
- 6. 소유권 기반 자원 관리
- 6.1. 생성자
- 6.2. 소멸자
- 6.3. 누설
- 7. 되감기
- 7.1. 예외 안전성
- 7.2. 오염
- 8. 동시성
- 8.1. 경합
- 8.2. Send와 Sync
- 8.3. 원자들
- 9. Implementing Vec
- 9.1. Layout
- 9.2. Allocating
- 9.3. Push and Pop
- 9.4. Deallocating
- 9.5. Deref
- 9.6. Insert and Remove
- 9.7. IntoIter
- 9.8. RawVec
- 9.9. Drain
- 9.10. Handling Zero-Sized Types
- 9.11. Final Code
- 10. Implementing Arc and Mutex
- 10.1. Arc
- 10.1.1. Layout
- 10.1.2. Base Code
- 10.1.3. Cloning
- 10.1.4. Dropping
- 10.1.5. Final Code
- 11. FFI
- 12. Beneath std
- 12.1. #[panic_handler]