MappedMutexGuard — 하위 필드를 가리키는 뮤텍스 가드

MappedMutexGuard — 하위 필드를 가리키는 뮤텍스 가드

MappedMutexGuardMutexGuard::map이 반환하는 RAII 뮤텍스 가드로, 보호된 데이터의 하위 필드를 가리킬 수 있어요. 이 구조체가 드롭되면(범위를 벗어나면) 잠금이 해제돼요. nightly 전용 실험 API(mapped_lock_guards, #117108)이에요.

출처: Rust 공식 문서

본문

pub struct MappedMutexGuard<'a, T: ?Sized + 'a> { /* private fields */ }

기존 MutexGuard와의 주된 차이점은, Mutex 타입을 반환하는 대신 하위 필드(T)에 대한 가드를 반환한다는 점이에요. 이에 따라 Mutex::lock을 직접 다시 호출하는 것과 달리 잠금 전체를 해제할 수 없지만, 부분 필드에 안전하게 접근할 수 있어요.

주요 메서드

pub fn map<U, F>(orig: Self, f: F) -> MappedMutexGuard<'_, U>
where
    F: FnOnce(&mut T) -> &mut U,
    U: ?Sized,

pub fn try_map<U, F>(orig: Self, f: F) -> Result<MappedMutexGuard<'_, U>, Self>
where
    F: FnOnce(&mut T) -> Option<&mut U>,
    U: ?Sized,

MappedMutexGuardDeref, DerefMut를 구현해 내부 T에 직접 접근할 수 있어요.

더 알아보기 (Learn more)