21 lines
713 B
C
21 lines
713 B
C
|
#ifndef COSMOPOLITAN_TOOL_BUILD_LIB_INTERNER_H_
|
|||
|
#define COSMOPOLITAN_TOOL_BUILD_LIB_INTERNER_H_
|
|||
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|||
|
COSMOPOLITAN_C_START_
|
|||
|
|
|||
|
struct Interner {
|
|||
|
size_t i; /* byte size of 𝑝 */
|
|||
|
size_t n; /* byte capacity of 𝑝 */
|
|||
|
char *p; /* will relocate */
|
|||
|
};
|
|||
|
|
|||
|
struct Interner *newinterner(void) returnsnonnull paramsnonnull();
|
|||
|
void freeinterner(struct Interner *);
|
|||
|
size_t interncount(const struct Interner *) paramsnonnull();
|
|||
|
size_t internobj(struct Interner *, const void *, size_t) paramsnonnull();
|
|||
|
size_t intern(struct Interner *, const char *) paramsnonnull();
|
|||
|
|
|||
|
COSMOPOLITAN_C_END_
|
|||
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|||
|
#endif /* COSMOPOLITAN_TOOL_BUILD_LIB_INTERNER_H_ */
|