ManualMemory.jl

Manual memory management utilities.
Author JuliaSIMD
Popularity
31 Stars
Updated Last
10 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