Skip to content

Commit 2b05161

Browse files
committed
feat(RDScratchBuffer): extended APIs
1 parent 54607d1 commit 2b05161

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

‎include/redasm/support/scratch.h‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ RD_API bool rd_scratch_set(RDScratchBuffer* self, usize idx, char c);
1717
RD_API void rd_scratch_clear(RDScratchBuffer* self);
1818
RD_API void rd_scratch_puts(RDScratchBuffer* self, const char* s);
1919
RD_API void rd_scratch_puts_n(RDScratchBuffer* self, const char* s, usize n);
20+
RD_API void rd_scratch_putchar(RDScratchBuffer* self, char c);
21+
RD_API const char* rd_scratch_first(const RDScratchBuffer* self);
22+
RD_API const char* rd_scratch_last(const RDScratchBuffer* self);
2023
RD_API const char* rd_scratch_data(const RDScratchBuffer* self);
2124
RD_API usize rd_scratch_length(const RDScratchBuffer* self);
2225
RD_API usize rd_scratch_capacity(const RDScratchBuffer* self);

‎src/support/scratch.c‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,18 @@ void rd_scratch_puts_n(RDScratchBuffer* self, const char* s, usize n) {
8686
if(s) str_append_n(&self->impl, s, n);
8787
}
8888

89+
void rd_scratch_putchar(RDScratchBuffer* self, char c) {
90+
str_push(&self->impl, c);
91+
}
92+
93+
const char* rd_scratch_first(const RDScratchBuffer* self) {
94+
return vect_is_empty(&self->impl) ? NULL : vect_first(&self->impl);
95+
}
96+
97+
const char* rd_scratch_last(const RDScratchBuffer* self) {
98+
return vect_is_empty(&self->impl) ? NULL : vect_last(&self->impl);
99+
}
100+
89101
const char* rd_scratch_data(const RDScratchBuffer* self) {
90102
return self->impl.data ? self->impl.data : "";
91103
}

0 commit comments

Comments
 (0)