demangle_status
demangle_status orig_status = printer->status; // fixme not sure this is needed match for Ok on the Rust side
demangle_status status; // if status == 0 parser is valid
static NODISCARD demangle_status try_parse_path(struct parser *parser) {
NODISCARD static demangle_status rust_demangle_v0_demangle(const char *s, size_t s_len, struct demangle_v0 *res, const char **rest) {
NODISCARD static demangle_status rust_demangle_legacy_demangle(const char *s, size_t s_len, struct demangle_legacy *res, const char **rest)
demangle_status status = try_parse_path(&parser);
demangle_status st = rust_demangle_legacy_demangle(s, s_len, &legacy, &suffix);
static NODISCARD demangle_status parser_push_depth(struct parser *parser) {
static demangle_status parser_pop_depth(struct parser *parser) {
static NODISCARD demangle_status parser_ch(struct parser *parser, uint8_t *next) {
static NODISCARD demangle_status parser_hex_nibbles(struct parser *parser, struct buf *buf) {
static NODISCARD demangle_status parser_digit_10(struct parser *parser, uint8_t *out) {
static NODISCARD demangle_status parser_digit_62(struct parser *parser, uint64_t *out) {
static NODISCARD demangle_status parser_integer_62(struct parser *parser, uint64_t *out) {
demangle_status status;
static NODISCARD demangle_status parser_opt_integer_62(struct parser *parser, uint8_t tag, uint64_t *out) {
demangle_status status;
static NODISCARD demangle_status parser_disambiguator(struct parser *parser, uint64_t *out) {
static NODISCARD demangle_status parser_namespace(struct parser *parser, parser_namespace_type *out) {
static NODISCARD demangle_status parser_backref(struct parser *parser, struct parser *out) {
demangle_status status = parser_integer_62(parser, &i);
static NODISCARD demangle_status parser_ident(struct parser *parser, struct ident *out) {
demangle_status status = parser_digit_10(parser, &d);
static const char *demangle_error_message(demangle_status status) {
demangle_status _parse_status = method(&(printer)->parser, ## __VA_ARGS__); \