#[cfg(feature = "allocator_api")]
use core::alloc::Allocator as ActualAllocator;
#[cfg(feature = "allocator_api")]
use alloc::alloc::Global;
#[cfg(feature = "allocator_api")]
pub trait Allocator: ActualAllocator {}
#[cfg(feature = "allocator_api")]
impl<T: ActualAllocator> Allocator for T {}
#[cfg(not(feature = "allocator_api"))]
pub trait Allocator: sealed::Sealed {}
#[cfg(not(feature = "allocator_api"))]
mod sealed {
use crate::Allocator;
pub trait Sealed {}
#[allow(missing_copy_implementations, missing_debug_implementations)]
pub struct DummyAllocator;
impl Sealed for DummyAllocator {}
impl Allocator for DummyAllocator {}
}
#[cfg(feature = "allocator_api")]
pub(crate) type DefaultAllocator = Global;
#[cfg(not(feature = "allocator_api"))]
pub(crate) type DefaultAllocator = sealed::DummyAllocator;