Files
c2/v0/buffer.h
T

51 lines
1.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* An interface that wraps files and strings.
* Allows streamlike reading from it.
*/
#ifndef BUFFER_H
#define BUFFER_H
/**
* An interface to a source of textual data.
*/
typedef struct Buffer Buffer;
/**
* Opens a file.
*
* @param path The path to the file.
* @returns The newlyopened buffer.
*/
Buffer* buffer_open_file(const char* path);
/**
* Opens a string.
*
* The string is not copied, and must not be free'd until the
* buffer itself has been closed.
*
* @param string The contents stored in the buffer.
* @returns A newlyopened buffer that reads from the string.
*/
Buffer* buffer_open_string(const char* string);
/**
* Closes the buffer.
*
* @param buffer The buffer to close.
*/
void buffer_close(Buffer* buffer);
/**
* Reads a single character from the buffer.
*
* If there are no more characters in the buffer,
* this returns `-1`.
*
* @param buffer The buffer to read from.
* @returns the next character in the buffer.
*/
char buffer_read(Buffer* buffer);
#endif