ManualMemory.jl

Manual memory management utilities.
Author JuliaSIMD
Popularity
21 Stars
Updated Last
12 Months Ago
Started In
June 2021

ManualMemory

Stable Dev Build Status Coverage

Manually managed memory buffers backed by NTuples

Examples

julia> using ManualMemory: MemoryBuffer, load, store!, LazyPreserve, preserve, PseudoPtr, Reference

julia> m = MemoryBuffer{4,Float64}(undef)
MemoryBuffer{4, Float64}((2.283825594e-314, 2.2157350003e-314, 2.216358792e-314, 2.08e-322))

julia> store!(pointer(m), 1.23)

julia> load(pointer(m))
1.23

Specifying an existing NTuple of data:

julia> s = (1,2,3,4,5);

julia> m = MemoryBuffer(s)
MemoryBuffer{5, Int64}((1, 2, 3, 4, 5))

julia> load(p)
1

julia> load(p+sizeof(Int64))
2

julia> load(p+sizeof(Int64)*2)
3