commit e5d76176b9b18eefd8136f51c0188e5c57631e62 (tree)
parent 76c729c96745bd13f83ad171f1cbd50d36893e70
Author: notcancername <119271574+notcancername@users.noreply.github.com>
Date: Mon, 28 Nov 2022 03:52:18 +0100
document std.heap.StackFallbackAllocator
Diffstat:
1 file changed, 7 insertions(+), 0 deletions(-)
diff --git a/lib/std/heap.zig b/lib/std/heap.zig
@@ -855,6 +855,9 @@ pub const FixedBufferAllocator = struct {
pub const ThreadSafeFixedBufferAllocator = @compileError("ThreadSafeFixedBufferAllocator has been replaced with `threadSafeAllocator` on FixedBufferAllocator");
+/// Returns a `StackFallbackAllocator` allocating using either a
+/// `FixedBufferAllocator` on an array of size `size` and falling back to
+/// `fallback_allocator` if that fails.
pub fn stackFallback(comptime size: usize, fallback_allocator: Allocator) StackFallbackAllocator(size) {
return StackFallbackAllocator(size){
.buffer = undefined,
@@ -863,6 +866,10 @@ pub fn stackFallback(comptime size: usize, fallback_allocator: Allocator) StackF
};
}
+/// An allocator that attempts to allocate using a
+/// `FixedBufferAllocator` using an array of size `size`. If the
+/// allocation fails, it will fall back to using
+/// `fallback_allocator`. Easily created with `stackFallback`.
pub fn StackFallbackAllocator(comptime size: usize) type {
return struct {
const Self = @This();