aboutsummaryrefslogtreecommitdiff
path: root/include/bufio.h
blob: b67256391295fb957dcb7faeefc278509405d6fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

typedef struct bufio·Reader bufio·Reader;

bufio·Reader *bufio·newreader(io·Reader r);
error         bufio·freereader(bufio·Reader *r);

int           bufio·read(bufio·Reader *r, byte *buf, int n);
int           bufio·readln(bufio·Reader *r, byte *buf, int n, error* err);
byte          bufio·get(bufio·Reader *r);
error         bufio·unget(bufio·Reader *r);
byte          bufio·peek(bufio·Reader *r);
int           bufio·peekfor(bufio·Reader *r, byte *buf, int n);
void          bufio·discard(bufio·Reader *r, int n);
void          bufio·clear(bufio·Reader *r);

typedef struct bufio·Writer bufio·Writer;

bufio·Writer *bufio·newwriter(io·Writer w);
error         bufio·freewriter(bufio·Writer *w);

int           bufio·write(bufio·Writer *w, byte *buf, int n);
error         bufio·put(bufio·Writer *w, byte b);
error         bufio·flush(bufio·Writer* w);

/* TODO */
typedef struct bufio·Scanner bufio·Scanner;