references.h 919 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef CMARK_REFERENCES_H
  2. #define CMARK_REFERENCES_H
  3. #include "chunk.h"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. #define REFMAP_SIZE 16
  8. struct cmark_reference {
  9. struct cmark_reference *next;
  10. unsigned char *label;
  11. cmark_chunk url;
  12. cmark_chunk title;
  13. unsigned int hash;
  14. };
  15. typedef struct cmark_reference cmark_reference;
  16. struct cmark_reference_map {
  17. cmark_mem *mem;
  18. cmark_reference *table[REFMAP_SIZE];
  19. };
  20. typedef struct cmark_reference_map cmark_reference_map;
  21. cmark_reference_map *cmark_reference_map_new(cmark_mem *mem);
  22. void cmark_reference_map_free(cmark_reference_map *map);
  23. cmark_reference *cmark_reference_lookup(cmark_reference_map *map,
  24. cmark_chunk *label);
  25. extern void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label,
  26. cmark_chunk *url, cmark_chunk *title);
  27. #ifdef __cplusplus
  28. }
  29. #endif
  30. #endif