Manually managed memory buffers backed by NTuples
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