int metadata_listener(Stream *stream, char *buffer) { if (!is_metadata(stream)) return -1; if (is_metadata_header(stream)) return metadata_header_handler(stream, buffer); else if (is_metadata_body(stream)) return metadata_body_handler(stream, buffer); return 0; }
Symbol* get_symbol() { assert(is_metadata(), "bad call"); return (Symbol*)(_ptr & ~1); }