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이므로 구현 시 메모리 안전성을 직접 보장해야 해요.