#ifndef _GTCACA_ROPE_H_
#define _GTCACA_ROPE_H_
#include <stddef.h>
typedef struct gtcaca_rope gtcaca_rope_t;
gtcaca_rope_t *gtcaca_rope_new(void);
gtcaca_rope_t *gtcaca_rope_from(const char *s, int len);
void gtcaca_rope_free(gtcaca_rope_t *r);
int gtcaca_rope_len(const gtcaca_rope_t *r);
int gtcaca_rope_lines(const gtcaca_rope_t *r);
void gtcaca_rope_insert(gtcaca_rope_t *r, int pos, const char *s, int len);
void gtcaca_rope_delete(gtcaca_rope_t *r, int pos, int len);
void gtcaca_rope_clear(gtcaca_rope_t *r);
char gtcaca_rope_at(const gtcaca_rope_t *r, int pos);
int gtcaca_rope_copy(const gtcaca_rope_t *r, int pos, int len, char *out);
char *gtcaca_rope_str(const gtcaca_rope_t *r);
int gtcaca_rope_line_of(const gtcaca_rope_t *r, int pos);
int gtcaca_rope_line_start(const gtcaca_rope_t *r, int line);
int gtcaca_rope_find(const gtcaca_rope_t *r, int from, char byte);
int gtcaca_rope_rfind(const gtcaca_rope_t *r, int from, char byte);
#endif