GhostCell & Branded Lifetimes in Rust: Safer Interior Mutability
- GhostCell은 런타임 오버헤드 없이 내부 가변성을 가능하게 하는 Rust의 개념입니다. 👻
- RefCell은 런타임에 빌림 검사를 수행하여 내부 가변성을 제공하지만, GhostCell은 컴파일 타임에 이를 수행합니다. ⏱️
- RefCell은 읽기 참조를 여러 개 가질 수 있거나 쓰기 참조를 하나 가질 수 있지만, 동시에 둘 다 가질 수는 없습니다. 이를 위반하면 런타임에 패닉이 발생합니다. 🚨
- GhostCell은 GoToken을 사용하여 데이터에 대한 접근 권한을 증명합니다. GoToken은 데이터에 대한 '락 박스' 역할을 합니다. 🔑
- GhostToken은 고유한 라이프타임을 가지며, 이를 '브랜드 라이프타임'이라고 합니다. 이는 컴파일러가 배타적 접근을 강제하도록 합니다. 🏷️
- GhostCell을 사용하면 컴파일 타임에 오류를 잡아내어 런타임 패닉을 방지할 수 있습니다. ✅
- GhostToken과 GhostCell은 특정 브랜드(라이프타임)에 연결되어, 해당 브랜드의 토큰만이 셀에 접근할 수 있습니다. 🔗
- GhostCell은 내부 가변성과 라이프타임을 다루는 복잡한 상황에서 유용합니다. 👍