Context — 비동기 작업의 문맥
Context — 비동기 작업의 문맥
Context는 비동기 작업(async task)의 문맥이에요. 현재는 주로 현재 작업을 깨우는 데 쓸 수 있는 &Waker에 대한 접근을 제공하는 역할을 해요.
출처: Rust 공식 문서
본문
pub struct Context<'a> { /* private fields */ }
주요 메서드
// &Waker로부터 새 Context를 만들어요.
pub const fn from_waker(waker: &'a Waker) -> Context<'a>
// 현재 작업의 Waker에 대한 참조를 반환해요.
pub const fn waker(&self) -> &'a Waker
또한 nightly 전용으로 다음 메서드들이 있어요.
// 현재 작업의 LocalWaker에 대한 참조를 반환해요.
pub const fn local_waker(&self) -> &'a LocalWaker // nightly (local_waker, #118959)
// 현재 작업의 확장 데이터에 대한 참조를 반환해요.
pub const fn ext(&mut self) -> &mut (dyn Any + 'static) // nightly (context_ext, #123392)
from_waker와 waker는 1.82.0부터 const 함수예요. Context는 Debug 트레잇도 구현해요.