#ifndef _LISP_STRING_H #define _LISP_STRING_H #include #include #include "dbg_malloc.h" #include "lisp_types.h" __attribute__((always_inline)) static inline int lisp_string_len(lisp_string* lstr) { return *((int*) lstr); } __attribute__((always_inline)) static inline char* lisp_string_data(lisp_string* lstr) { return lstr + sizeof(int); } char* lisp_string_create(char* str); char* lisp_string_create_raw(char* buf, int len); char* lisp_string_alloc(int len); lisp_string* lisp_string_copy(lisp_string* lstr); int lisp_string_cmp(lisp_string* a_lstr, lisp_string* b_lstr); void lisp_string_print(lisp_string* lstr); #endif