Module Metal_api.Memory

type 'a buffer = {
  1. handle : Metal_types.mtl_buffer;
  2. size : int;
  3. elem_size : int;
  4. device : Device.t;
  5. contents : unit Ctypes.ptr;
}
val alloc : Device.t -> int -> int -> 'a buffer
val alloc_bigarray : Device.t -> ('a, 'b, 'c) Stdlib.Bigarray.Array1.t -> int -> 'd buffer
val to_bigarray : 'c buffer -> ('a, 'b) Stdlib.Bigarray.kind -> ('a, 'b, Stdlib.Bigarray.c_layout) Stdlib.Bigarray.Array1.t
val release : 'a buffer -> unit
val size : 'a buffer -> int
val handle : 'a buffer -> Metal_types.mtl_buffer
val contents : 'a buffer -> unit Ctypes.ptr