diff options
author | Mitya Selivanov <automainint@guattari.tech> | 2023-09-12 16:21:29 +0200 |
---|---|---|
committer | Mitya Selivanov <automainint@guattari.tech> | 2023-09-12 16:21:29 +0200 |
commit | d403ce66efb9b1150d103bc3b15eeaad312553a8 (patch) | |
tree | a824b6ebb995b7a6794efa7f10060bf9ae74e066 /source/kit/xml.h | |
parent | 3466546567bb2a4014c221523bbb04c1860916f5 (diff) | |
download | kit-d403ce66efb9b1150d103bc3b15eeaad312553a8.zip |
Update TODO
Diffstat (limited to 'source/kit/xml.h')
-rw-r--r-- | source/kit/xml.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/source/kit/xml.h b/source/kit/xml.h new file mode 100644 index 0000000..409c835 --- /dev/null +++ b/source/kit/xml.h @@ -0,0 +1,50 @@ +#ifndef KIT_XML_H +#define KIT_XML_H + +#include "status.h" +#include "string_builder.h" +#include "input_stream.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct kit_xml_ kit_xml_t; + +typedef struct { + kit_str_builder_t name; + kit_str_builder_t value; +} kit_xml_property_t; + +typedef KIT_DA(kit_xml_property_t) kit_da_xml_property_t; +typedef KIT_DA(kit_xml_t) kit_da_xml_t; + +struct kit_xml_ { + kit_str_builder_t tag; + kit_str_builder_t text; + kit_str_builder_t tail; + kit_da_xml_property_t properties; + kit_da_xml_t children; +}; + +typedef struct { + kit_status_t status; + kit_xml_t *xml; +} kit_xml_parse_result_t; + +typedef struct { + kit_status_t status; + kit_str_builder_t xml; +} kit_xml_print_result_t; + +kit_xml_parse_result_t kit_xml_parse(kit_is_handle_t is, + kit_allocator_t *alloc); +kit_xml_print_result_t kit_xml_print(kit_xml_t *xml, + kit_allocator_t *alloc); +void kit_xml_destroy(kit_xml_t *xml); + +#ifdef __cplusplus +} +#endif + +#endif |