RawWakerVTable — RawWaker 동작을 지정하는 가상 테이블
RawWakerVTable — RawWaker 동작을 지정하는 가상 테이블
RawWakerVTable는 RawWaker의 동작을 지정하는 가상 함수 포인터 테이블(vtable)이에요.
출처: Rust 공식 문서
본문
pub struct RawWakerVTable { /* private fields */ }
vtable 안의 모든 함수에 전달되는 포인터는 바깥 RawWaker 객체의 데이터 포인터예요. vtable 안의 함수들은 다음과 같아요.
// clone 함수 — RawWaker의 복사본을 만들어요.
clone: unsafe fn(*const ()) -> RawWaker,
// wake 함수 — 이 RawWaker가 가리키는 작업을 깨워요.
wake: unsafe fn(*const ()),
// wake_by_ref 함수 — 값을 소비하지 않고 작업을 깨워요.
wake_by_ref: unsafe fn(*const ()),
// drop 함수 — RawWaker와 관련 자원을 해제해요.
drop: unsafe fn(*const ()),
생성 메서드
pub const fn new(
clone: unsafe fn(*const ()) -> RawWaker,
wake: unsafe fn(*const ()),
wake_by_ref: unsafe fn(*const ()),
drop: unsafe fn(*const ()),
) -> RawWakerVTable