SOURCE_FILE FN FN_KW "fn" WHITESPACE " " NAME IDENT "g1" PARAM_LIST L_PAREN "(" PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr1" R_BRACK "]" WHITESPACE " " ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr2" R_BRACK "]" WHITESPACE " " IDENT_PAT NAME IDENT "pat" COLON ":" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Type" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n" FN FN_KW "fn" WHITESPACE " " NAME IDENT "g2" PARAM_LIST L_PAREN "(" PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr1" R_BRACK "]" WHITESPACE " " IDENT_PAT NAME IDENT "x" COLON ":" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "u8" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n\n" EXTERN_BLOCK ABI EXTERN_KW "extern" WHITESPACE " " STRING "\"C\"" WHITESPACE " " EXTERN_ITEM_LIST L_CURLY "{" WHITESPACE " " FN FN_KW "fn" WHITESPACE " " NAME IDENT "printf" PARAM_LIST L_PAREN "(" PARAM IDENT_PAT NAME IDENT "format" COLON ":" WHITESPACE " " PTR_TYPE STAR "*" CONST_KW "const" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "i8" COMMA "," WHITESPACE " " PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " DOT3 "..." R_PAREN ")" WHITESPACE " " RET_TYPE THIN_ARROW "->" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "i32" SEMICOLON ";" WHITESPACE " " R_CURLY "}" WHITESPACE "\n\n" FN FN_KW "fn" WHITESPACE " " NAME IDENT "foo" GENERIC_PARAM_LIST L_ANGLE "<" TYPE_PARAM NAME IDENT "F" COLON ":" WHITESPACE " " TYPE_BOUND_LIST TYPE_BOUND PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "FnMut" PARAM_LIST L_PAREN "(" PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " REF_TYPE AMP "&" MUT_KW "mut" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Foo" GENERIC_ARG_LIST L_ANGLE "<" LIFETIME_ARG LIFETIME LIFETIME_IDENT "'a" R_ANGLE ">" R_PAREN ")" R_ANGLE ">" PARAM_LIST L_PAREN "(" R_PAREN ")" BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n\n" TRAIT TRAIT_KW "trait" WHITESPACE " " NAME IDENT "Foo" WHITESPACE " " ASSOC_ITEM_LIST L_CURLY "{" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "bar" PARAM_LIST L_PAREN "(" PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " WILDCARD_PAT UNDERSCORE "_" COLON ":" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "u64" COMMA "," WHITESPACE " " PARAM ATTR POUND "#" WHITESPACE " " L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " IDENT_PAT MUT_KW "mut" WHITESPACE " " NAME IDENT "x" COLON ":" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "i32" R_PAREN ")" SEMICOLON ";" WHITESPACE "\n" R_CURLY "}" WHITESPACE "\n\n" IMPL IMPL_KW "impl" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "S" WHITESPACE " " ASSOC_ITEM_LIST L_CURLY "{" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "f" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "must_use" R_BRACK "]" WHITESPACE " " NAME SELF_KW "self" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "g1" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " NAME SELF_KW "self" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "g2" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " AMP "&" NAME SELF_KW "self" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "g3" GENERIC_PARAM_LIST L_ANGLE "<" LIFETIME_PARAM LIFETIME LIFETIME_IDENT "'a" R_ANGLE ">" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " AMP "&" MUT_KW "mut" WHITESPACE " " NAME SELF_KW "self" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "g4" GENERIC_PARAM_LIST L_ANGLE "<" LIFETIME_PARAM LIFETIME LIFETIME_IDENT "'a" R_ANGLE ">" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " AMP "&" LIFETIME LIFETIME_IDENT "'a" WHITESPACE " " NAME SELF_KW "self" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "g5" GENERIC_PARAM_LIST L_ANGLE "<" LIFETIME_PARAM LIFETIME LIFETIME_IDENT "'a" R_ANGLE ">" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " AMP "&" LIFETIME LIFETIME_IDENT "'a" WHITESPACE " " MUT_KW "mut" WHITESPACE " " NAME SELF_KW "self" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "c" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " NAME SELF_KW "self" COLON ":" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Self" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n " FN FN_KW "fn" WHITESPACE " " NAME IDENT "d" PARAM_LIST L_PAREN "(" SELF_PARAM ATTR POUND "#" L_BRACK "[" META PATH PATH_SEGMENT NAME_REF IDENT "attr" R_BRACK "]" WHITESPACE " " NAME SELF_KW "self" COLON ":" WHITESPACE " " PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Rc" GENERIC_ARG_LIST L_ANGLE "<" TYPE_ARG PATH_TYPE PATH PATH_SEGMENT NAME_REF IDENT "Self" R_ANGLE ">" R_PAREN ")" WHITESPACE " " BLOCK_EXPR STMT_LIST L_CURLY "{" R_CURLY "}" WHITESPACE "\n" R_CURLY "}"