Allocator — 커스텀 메모리 할당자 트레이트

Allocator — 커스텀 메모리 할당자 트레이트

Allocator는 사용자 정의 메모리 할당자를 구현하기 위한 트레이트예요. nightly 전용의 allocator_api 기능으로 제공되는 저수준 할당 인터페이스예요.

출처: Rust 공식 문서

본문

pub unsafe trait Allocator {
    // Required methods
    fn allocate(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>;
    unsafe fn deallocate(&self, ptr: NonNull<u8>, layout: Layout);

    // Provided methods
    fn allocate_zeroed(&self, layout: Layout) -> Result<NonNull<[u8]>, AllocError>;
    // ...
}

필수 메서드는 allocate(할당)와 deallocate(해제)예요. 기본 구현으로 allocate_zeroed 같은 편의 메서드도 제공돼요. 이 트레이트를 구현하면 Vec<T, A>처럼 할당자를 매개변수로 받는 컬렉션에 나만의 할당 전략을 넣을 수 있어요. 이 트레이트는 unsafe이므로 구현 시 메모리 안전성을 직접 보장해야 해요.

더 알아보기 (Learn more)

Rust 공식 문서