-module(htmgrrrl). -compile([no_auto_import, nowarn_unused_vars]). -export([sax/3]). -export_type([sax_event/0, attribute/0]). -type sax_event() :: start_document | end_document | {start_prefix_mapping, binary(), binary()} | {end_prefix_mapping, binary()} | {start_element, binary(), binary(), {binary(), binary()}, list(attribute())} | {end_element, binary(), binary(), {binary(), binary()}} | {characters, binary()} | {ignorable_whitespace, binary()} | {processing_instruction, binary(), binary()} | {comment, binary()} | start_cdata | end_cdata | {start_dtd, binary(), binary(), binary()} | end_dtd | {element_decl, binary(), binary()} | {attribute_declaration, binary(), binary(), binary(), binary(), binary()} | {internal_entity_declaration, binary(), binary()} | {external_entity_declaration, binary(), binary(), binary()} | {unparsed_entity_declaration, binary(), binary(), binary(), binary()} | {notation_declaration, binary(), binary(), binary()}. -type attribute() :: {attribute, binary(), binary(), binary(), binary()}. -spec sax(binary(), EUY, fun((EUY, integer(), sax_event()) -> EUY)) -> {ok, EUY} | {error, nil}. sax(Field@0, Field@1, Field@2) -> htmgrrrl_ffi:sax(Field@0, Field@1, Field@2).