#pragma once #include struct mem_io; struct mem_io_istream { size_t (*read)(const struct mem_io_istream *stream, void *ptr, const size_t size); void *backing; }; struct mem_io_istream mem_io_istream_from_file(FILE *file); size_t mem_io_write_from_stream(const struct mem_io *io, const struct mem_io_istream *stream, const size_t offset, const size_t size); struct mem_io_ostream { size_t (*write)(const struct mem_io_ostream *stream, const void *ptr, const size_t size); void *backing; }; struct mem_io_ostream mem_io_ostream_from_file(FILE *file); size_t mem_io_read_to_stream(const struct mem_io *io, const struct mem_io_ostream *stream, const size_t offset, const size_t size);