Idris2/support/refc/buffer.h
Stiopa Koltsov f81c37ea3a Pass Buffer as char* when using C functions in RefC
To be able to use `C` functions for both Scheme and RefC: it was
not possible for `Buffer` before this PR.

As an example, `writeBufferData` and `readBufferData` functions are
removed: generic C backend implementations are used instead.
2021-07-13 23:04:36 +01:00

28 lines
696 B
C

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
typedef struct {
int size;
char data[];
} Buffer;
void* newBuffer(int bytes);
int getBufferSize(void* buffer);
void setBufferByte(void* buffer, int loc, int byte);
void setBufferInt(void* buffer, int loc, int64_t val);
void setBufferDouble(void* buffer, int loc, double val);
void setBufferString(void* buffer, int loc, char* str);
void copyBuffer(void* from, int start, int len,
void* to, int loc);
uint8_t getBufferByte(void* buffer, int loc);
int64_t getBufferInt(void* buffer, int loc);
double getBufferDouble(void* buffer, int loc);
char* getBufferString(void* buffer, int loc, int len);