SOURCE_FILE@0..686 FN@0..461 FN_KW@0..2 "fn" WHITESPACE@2..3 " " NAME@3..8 IDENT@3..8 "block" PARAM_LIST@8..10 L_PAREN@8..9 "(" R_PAREN@9..10 ")" WHITESPACE@10..11 " " BLOCK_EXPR@11..461 L_CURLY@11..12 "{" WHITESPACE@12..17 "\n " ATTR@17..57 POUND@17..18 "#" BANG@18..19 "!" L_BRACK@19..20 "[" PATH@20..23 PATH_SEGMENT@20..23 NAME_REF@20..23 IDENT@20..23 "doc" TOKEN_TREE@23..56 L_PAREN@23..24 "(" STRING@24..55 "\"Inner attributes all ..." R_PAREN@55..56 ")" R_BRACK@56..57 "]" WHITESPACE@57..62 "\n " COMMENT@62..97 "//! As are ModuleDoc ..." WHITESPACE@97..102 "\n " EXPR_STMT@102..295 BLOCK_EXPR@102..294 L_CURLY@102..103 "{" WHITESPACE@103..112 "\n " ATTR@112..180 POUND@112..113 "#" BANG@113..114 "!" L_BRACK@114..115 "[" PATH@115..118 PATH_SEGMENT@115..118 NAME_REF@115..118 IDENT@115..118 "doc" TOKEN_TREE@118..179 L_PAREN@118..119 "(" STRING@119..178 "\"Inner attributes are ..." R_PAREN@178..179 ")" R_BRACK@179..180 "]" WHITESPACE@180..189 "\n " ATTR@189..244 POUND@189..190 "#" BANG@190..191 "!" L_BRACK@191..192 "[" PATH@192..195 PATH_SEGMENT@192..195 NAME_REF@192..195 IDENT@192..195 "doc" TOKEN_TREE@195..243 L_PAREN@195..196 "(" STRING@196..242 "\"Being validated is n ..." R_PAREN@242..243 ")" R_BRACK@243..244 "]" WHITESPACE@244..253 "\n " COMMENT@253..288 "//! As are ModuleDoc ..." WHITESPACE@288..293 "\n " R_CURLY@293..294 "}" SEMICOLON@294..295 ";" WHITESPACE@295..300 "\n " BLOCK_EXPR@300..459 L_CURLY@300..301 "{" WHITESPACE@301..310 "\n " ATTR@310..409 POUND@310..311 "#" BANG@311..312 "!" L_BRACK@312..313 "[" PATH@313..316 PATH_SEGMENT@313..316 NAME_REF@313..316 IDENT@313..316 "doc" TOKEN_TREE@316..408 L_PAREN@316..317 "(" STRING@317..407 "\"Inner attributes are ..." R_PAREN@407..408 ")" R_BRACK@408..409 "]" WHITESPACE@409..418 "\n " COMMENT@418..453 "//! As are ModuleDoc ..." WHITESPACE@453..458 "\n " R_CURLY@458..459 "}" WHITESPACE@459..460 "\n" R_CURLY@460..461 "}" WHITESPACE@461..463 "\n\n" COMMENT@463..523 "// https://github.com ..." WHITESPACE@523..524 "\n" IMPL@524..685 IMPL_KW@524..528 "impl" WHITESPACE@528..529 " " PATH_TYPE@529..537 PATH@529..537 PATH_SEGMENT@529..537 NAME_REF@529..537 IDENT@529..537 "Whatever" WHITESPACE@537..538 " " ASSOC_ITEM_LIST@538..685 L_CURLY@538..539 "{" WHITESPACE@539..544 "\n " FN@544..683 FN_KW@544..546 "fn" WHITESPACE@546..547 " " NAME@547..558 IDENT@547..558 "salsa_event" PARAM_LIST@558..601 L_PAREN@558..559 "(" SELF_PARAM@559..564 AMP@559..560 "&" SELF_KW@560..564 "self" COMMA@564..565 "," WHITESPACE@565..566 " " PARAM@566..600 IDENT_PAT@566..574 NAME@566..574 IDENT@566..574 "event_fn" COLON@574..575 ":" WHITESPACE@575..576 " " IMPL_TRAIT_TYPE@576..600 IMPL_KW@576..580 "impl" WHITESPACE@580..581 " " TYPE_BOUND_LIST@581..600 TYPE_BOUND@581..600 PATH_TYPE@581..600 PATH@581..600 PATH_SEGMENT@581..600 NAME_REF@581..583 IDENT@581..583 "Fn" PARAM_LIST@583..585 L_PAREN@583..584 "(" R_PAREN@584..585 ")" WHITESPACE@585..586 " " RET_TYPE@586..600 THIN_ARROW@586..588 "->" WHITESPACE@588..589 " " PATH_TYPE@589..600 PATH@589..600 PATH_SEGMENT@589..600 NAME_REF@589..594 IDENT@589..594 "Event" GENERIC_ARG_LIST@594..600 L_ANGLE@594..595 "<" TYPE_ARG@595..599 PATH_TYPE@595..599 PATH@595..599 PATH_SEGMENT@595..599 NAME_REF@595..599 IDENT@595..599 "Self" R_ANGLE@599..600 ">" R_PAREN@600..601 ")" WHITESPACE@601..602 " " BLOCK_EXPR@602..683 L_CURLY@602..603 "{" WHITESPACE@603..612 "\n " ATTR@612..639 POUND@612..613 "#" BANG@613..614 "!" L_BRACK@614..615 "[" PATH@615..620 PATH_SEGMENT@615..620 NAME_REF@615..620 IDENT@615..620 "allow" TOKEN_TREE@620..638 L_PAREN@620..621 "(" IDENT@621..637 "unused_variables" R_PAREN@637..638 ")" R_BRACK@638..639 "]" WHITESPACE@639..640 " " COMMENT@640..677 "// this is `inner_at ..." WHITESPACE@677..682 "\n " R_CURLY@682..683 "}" WHITESPACE@683..684 "\n" R_CURLY@684..685 "}" WHITESPACE@685..686 "\n"