+int
+rbuffer_erase(struct rbuffer* rb);
+
+int
+rbuffer_put(struct rbuffer* rb, char c);
+
+int
+rbuffer_puts(struct rbuffer* rb, char* c, size_t len);
+
+int
+rbuffer_gets_opt(struct rbuffer* rb, char* buf, size_t len, bool consumed);
+
+int
+rbuffer_get(struct rbuffer* rb, char* c);
+
+static inline int
+rbuffer_gets(struct rbuffer* rb, char* buf, size_t len)
+{
+ return rbuffer_gets_opt(rb, buf, len, true);
+}
+
+static inline int
+rbuffer_gets_no_consume(struct rbuffer* rb, char* buf, size_t len)
+{
+ return rbuffer_gets_opt(rb, buf, len, false);
+}
+