summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/writer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/c/pgf/writer.h')
-rw-r--r--src/runtime/c/pgf/writer.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/runtime/c/pgf/writer.h b/src/runtime/c/pgf/writer.h
new file mode 100644
index 000000000..de99ee266
--- /dev/null
+++ b/src/runtime/c/pgf/writer.h
@@ -0,0 +1,39 @@
+#ifndef WRITER_H_
+#define WRITER_H_
+
+#include <gu/exn.h>
+#include <gu/mem.h>
+#include <gu/in.h>
+
+// the writer interface
+
+typedef struct PgfWriter PgfWriter;
+
+PGF_INTERNAL_DECL PgfWriter*
+pgf_new_writer(GuOut* out, GuPool* pool, GuExn* err);
+
+PGF_INTERNAL_DECL void
+pgf_write_tag(uint8_t tag, PgfWriter* wtr);
+
+PGF_INTERNAL_DECL void
+pgf_write_uint(uint32_t val, PgfWriter* wtr);
+
+PGF_INTERNAL_DECL void
+pgf_write_int(int32_t val, PgfWriter* wtr);
+
+PGF_INTERNAL_DECL void
+pgf_write_string(GuString val, PgfWriter* wtr);
+
+PGF_INTERNAL_DECL void
+pgf_write_double(double val, PgfWriter* wtr);
+
+PGF_INTERNAL_DECL void
+pgf_write_len(size_t len, PgfWriter* wtr);
+
+PGF_INTERNAL_DECL void
+pgf_write_cid(PgfCId id, PgfWriter* wtr);
+
+PGF_INTERNAL_DECL void
+pgf_write_pgf(PgfPGF* pgf, PgfWriter* wtr);
+
+#endif // WRITER_H_