SOURCE_FILE@0..764 FN@0..461 FN_KW@0..2 "fn" WHITESPACE@2..3 " " NAME@3..8 IDENT@3..8 "inner" PARAM_LIST@8..10 L_PAREN@8..9 "(" R_PAREN@9..10 ")" WHITESPACE@10..11 " " BLOCK_EXPR@11..461 STMT_LIST@11..461 L_CURLY@11..12 "{" WHITESPACE@12..17 "\n " ATTR@17..57 POUND@17..18 "#" BANG@18..19 "!" L_BRACK@19..20 "[" META@20..56 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 STMT_LIST@102..294 L_CURLY@102..103 "{" WHITESPACE@103..112 "\n " ATTR@112..180 POUND@112..113 "#" BANG@113..114 "!" L_BRACK@114..115 "[" META@115..179 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 "[" META@192..243 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 STMT_LIST@300..459 L_CURLY@300..301 "{" WHITESPACE@301..310 "\n " ATTR@310..409 POUND@310..311 "#" BANG@311..312 "!" L_BRACK@312..313 "[" META@313..408 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" FN@463..539 FN_KW@463..465 "fn" WHITESPACE@465..466 " " NAME@466..471 IDENT@466..471 "outer" PARAM_LIST@471..473 L_PAREN@471..472 "(" R_PAREN@472..473 ")" WHITESPACE@473..474 " " BLOCK_EXPR@474..539 STMT_LIST@474..539 L_CURLY@474..475 "{" WHITESPACE@475..480 "\n " LET_STMT@480..537 LET_KW@480..483 "let" WHITESPACE@483..484 " " WILDCARD_PAT@484..485 UNDERSCORE@484..485 "_" WHITESPACE@485..486 " " EQ@486..487 "=" WHITESPACE@487..488 " " BLOCK_EXPR@488..536 ATTR@488..533 POUND@488..489 "#" L_BRACK@489..490 "[" META@490..532 PATH@490..493 PATH_SEGMENT@490..493 NAME_REF@490..493 IDENT@490..493 "doc" TOKEN_TREE@493..532 L_PAREN@493..494 "(" STRING@494..531 "\"Outer attributes are ..." R_PAREN@531..532 ")" R_BRACK@532..533 "]" WHITESPACE@533..534 " " STMT_LIST@534..536 L_CURLY@534..535 "{" R_CURLY@535..536 "}" SEMICOLON@536..537 ";" WHITESPACE@537..538 "\n" R_CURLY@538..539 "}" WHITESPACE@539..541 "\n\n" IMPL@541..763 COMMENT@541..601 "// https://github.com ..." WHITESPACE@601..602 "\n" IMPL_KW@602..606 "impl" WHITESPACE@606..607 " " PATH_TYPE@607..615 PATH@607..615 PATH_SEGMENT@607..615 NAME_REF@607..615 IDENT@607..615 "Whatever" WHITESPACE@615..616 " " ASSOC_ITEM_LIST@616..763 L_CURLY@616..617 "{" WHITESPACE@617..622 "\n " FN@622..761 FN_KW@622..624 "fn" WHITESPACE@624..625 " " NAME@625..636 IDENT@625..636 "salsa_event" PARAM_LIST@636..679 L_PAREN@636..637 "(" SELF_PARAM@637..642 AMP@637..638 "&" NAME@638..642 SELF_KW@638..642 "self" COMMA@642..643 "," WHITESPACE@643..644 " " PARAM@644..678 IDENT_PAT@644..652 NAME@644..652 IDENT@644..652 "event_fn" COLON@652..653 ":" WHITESPACE@653..654 " " IMPL_TRAIT_TYPE@654..678 IMPL_KW@654..658 "impl" WHITESPACE@658..659 " " TYPE_BOUND_LIST@659..678 TYPE_BOUND@659..678 PATH_TYPE@659..678 PATH@659..678 PATH_SEGMENT@659..678 NAME_REF@659..661 IDENT@659..661 "Fn" PARAM_LIST@661..663 L_PAREN@661..662 "(" R_PAREN@662..663 ")" WHITESPACE@663..664 " " RET_TYPE@664..678 THIN_ARROW@664..666 "->" WHITESPACE@666..667 " " PATH_TYPE@667..678 PATH@667..678 PATH_SEGMENT@667..678 NAME_REF@667..672 IDENT@667..672 "Event" GENERIC_ARG_LIST@672..678 L_ANGLE@672..673 "<" TYPE_ARG@673..677 PATH_TYPE@673..677 PATH@673..677 PATH_SEGMENT@673..677 NAME_REF@673..677 IDENT@673..677 "Self" R_ANGLE@677..678 ">" R_PAREN@678..679 ")" WHITESPACE@679..680 " " BLOCK_EXPR@680..761 STMT_LIST@680..761 L_CURLY@680..681 "{" WHITESPACE@681..690 "\n " ATTR@690..717 POUND@690..691 "#" BANG@691..692 "!" L_BRACK@692..693 "[" META@693..716 PATH@693..698 PATH_SEGMENT@693..698 NAME_REF@693..698 IDENT@693..698 "allow" TOKEN_TREE@698..716 L_PAREN@698..699 "(" IDENT@699..715 "unused_variables" R_PAREN@715..716 ")" R_BRACK@716..717 "]" WHITESPACE@717..718 " " COMMENT@718..755 "// this is `inner_at ..." WHITESPACE@755..760 "\n " R_CURLY@760..761 "}" WHITESPACE@761..762 "\n" R_CURLY@762..763 "}" WHITESPACE@763..764 "\n"