factor/native/sbuf.h

35 lines
892 B
C

typedef struct {
/* always tag_header(SBUF_TYPE) */
CELL header;
/* untagged */
CELL top;
/* untagged */
STRING* string;
} SBUF;
INLINE SBUF* untag_sbuf(CELL tagged)
{
type_check(SBUF_TYPE,tagged);
return (SBUF*)UNTAG(tagged);
}
SBUF* sbuf(FIXNUM capacity);
void primitive_sbuf(void);
void primitive_sbuf_length(void);
void primitive_set_sbuf_length(void);
void primitive_sbuf_nth(void);
void sbuf_ensure_capacity(SBUF* sbuf, FIXNUM top);
void set_sbuf_nth(SBUF* sbuf, CELL index, CHAR value);
void primitive_set_sbuf_nth(void);
void sbuf_append_string(SBUF* sbuf, STRING* string);
void primitive_sbuf_append(void);
void primitive_sbuf_to_string(void);
void primitive_sbuf_reverse(void);
void primitive_sbuf_clone(void);
bool sbuf_eq(SBUF* s1, SBUF* s2);
void primitive_sbuf_eq(void);
void primitive_sbuf_hashcode(void);
void fixup_sbuf(SBUF* sbuf);
void collect_sbuf(SBUF* sbuf);