FILE
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('F')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N0')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('S1')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsPathExprImpl(PATH_EXPR)
          RsPathImpl(PATH)
            PsiElement(identifier)('S1')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N1')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsLitExprImpl(LIT_EXPR)
          PsiElement(INTEGER_LITERAL)('1')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N2')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsBlockExprImpl(BLOCK_EXPR)
          RsBlockImpl(BLOCK)
            PsiElement({)('{')
            PsiWhiteSpace(' ')
            RsExprStmtImpl(EXPR_STMT)
              RsBinaryExprImpl(BINARY_EXPR)
                RsLitExprImpl(LIT_EXPR)
                  PsiElement(INTEGER_LITERAL)('1')
                PsiWhiteSpace(' ')
                RsBinaryOpImpl(BINARY_OP)
                  PsiElement(+)('+')
                PsiWhiteSpace(' ')
                RsLitExprImpl(LIT_EXPR)
                  PsiElement(INTEGER_LITERAL)('1')
            PsiWhiteSpace(' ')
            PsiElement(})('}')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N3')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsBinaryExprImpl(BINARY_EXPR)
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiWhiteSpace(' ')
          RsBinaryOpImpl(BINARY_OP)
            PsiElement(+)('+')
          PsiWhiteSpace(' ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N4')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsArrayTypeImpl(ARRAY_TYPE)
          PsiElement([)('[')
          RsPathTypeImpl(PATH_TYPE)
            RsPathImpl(PATH)
              PsiElement(identifier)('usize')
          PsiElement(;)(';')
          PsiWhiteSpace(' ')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiElement(])(']')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsArrayExprImpl(ARRAY_EXPR)
          PsiElement([)('[')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiElement(])(']')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N5')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsCastExprImpl(CAST_EXPR)
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
          PsiWhiteSpace(' ')
          PsiElement(as)('as')
          PsiWhiteSpace(' ')
          RsPathTypeImpl(PATH_TYPE)
            RsPathImpl(PATH)
              PsiElement(identifier)('usize')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N6')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('foo')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            RsLitExprImpl(LIT_EXPR)
              PsiElement(INTEGER_LITERAL)('42')
            PsiElement())(')')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N7')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('S2')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsStructLiteralImpl(STRUCT_LITERAL)
          RsPathImpl(PATH)
            PsiElement(identifier)('S2')
          PsiWhiteSpace(' ')
          RsStructLiteralBodyImpl(STRUCT_LITERAL_BODY)
            PsiElement({)('{')
            PsiWhiteSpace(' ')
            RsStructLiteralFieldImpl(STRUCT_LITERAL_FIELD)
              PsiElement(identifier)('x')
              PsiElement(:)(':')
              PsiWhiteSpace(' ')
              RsLitExprImpl(LIT_EXPR)
                PsiElement(INTEGER_LITERAL)('1')
            PsiWhiteSpace(' ')
            PsiElement(})('}')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N8')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsDotExprImpl(DOT_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('C')
          PsiElement(.)('.')
          RsFieldLookupImpl(FIELD_LOOKUP)
            PsiElement(INTEGER_LITERAL)('0')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N9')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('isize')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(-)('-')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(INTEGER_LITERAL)('1')
      PsiElement(,)(',')
      PsiWhiteSpace('\n    ')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N10')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('bool')
        PsiWhiteSpace(' ')
        PsiElement(=)('=')
        PsiWhiteSpace(' ')
        RsUnaryExprImpl(UNARY_EXPR)
          PsiElement(!)('!')
          RsLitExprImpl(LIT_EXPR)
            PsiElement(BOOL_LITERAL)('true')
      PsiWhiteSpace('\n')
      PsiElement(>)('>')
    RsTupleFieldsImpl(TUPLE_FIELDS)
      PsiElement(()('(')
      PsiElement())(')')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('S')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('Z')
      PsiElement(>)('>')
    PsiElement(;)(';')
  PsiWhiteSpace('\n')
  RsStructItemImpl(STRUCT_ITEM)
    PsiElement(struct)('struct')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('Z')
    RsTypeParameterListImpl(TYPE_PARAMETER_LIST)
      PsiElement(<)('<')
      RsConstParameterImpl(CONST_PARAMETER)
        PsiElement(const)('const')
        PsiWhiteSpace(' ')
        PsiElement(identifier)('N')
        PsiElement(:)(':')
        PsiWhiteSpace(' ')
        RsPathTypeImpl(PATH_TYPE)
          RsPathImpl(PATH)
            PsiElement(identifier)('usize')
      PsiElement(>)('>')
    PsiElement(;)(';')
  PsiWhiteSpace('\n\n')
  RsFunctionImpl(FUNCTION)
    PsiElement(fn)('fn')
    PsiWhiteSpace(' ')
    PsiElement(identifier)('main')
    RsValueParameterListImpl(VALUE_PARAMETER_LIST)
      PsiElement(()('(')
      PsiElement())(')')
    PsiWhiteSpace(' ')
    RsBlockImpl(BLOCK)
      PsiElement({)('{')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsCallExprImpl(CALL_EXPR)
          RsPathExprImpl(PATH_EXPR)
            RsPathImpl(PATH)
              PsiElement(identifier)('F')
              RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                PsiElement(::)('::')
                PsiElement(<)('<')
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    PsiWhiteSpace(' ')
                    RsExprStmtImpl(EXPR_STMT)
                      RsPathExprImpl(PATH_EXPR)
                        RsPathImpl(PATH)
                          PsiElement(identifier)('S1')
                    PsiWhiteSpace(' ')
                    PsiElement(})('}')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsLitExprImpl(LIT_EXPR)
                  PsiElement(INTEGER_LITERAL)('1')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    PsiWhiteSpace(' ')
                    RsExprStmtImpl(EXPR_STMT)
                      RsBinaryExprImpl(BINARY_EXPR)
                        RsLitExprImpl(LIT_EXPR)
                          PsiElement(INTEGER_LITERAL)('1')
                        PsiWhiteSpace(' ')
                        RsBinaryOpImpl(BINARY_OP)
                          PsiElement(+)('+')
                        PsiWhiteSpace(' ')
                        RsLitExprImpl(LIT_EXPR)
                          PsiElement(INTEGER_LITERAL)('1')
                    PsiWhiteSpace(' ')
                    PsiElement(})('}')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsBinaryExprImpl(BINARY_EXPR)
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('1')
                  PsiWhiteSpace(' ')
                  RsBinaryOpImpl(BINARY_OP)
                    PsiElement(+)('+')
                  PsiWhiteSpace(' ')
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('1')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    PsiWhiteSpace(' ')
                    RsExprStmtImpl(EXPR_STMT)
                      RsArrayExprImpl(ARRAY_EXPR)
                        PsiElement([)('[')
                        RsLitExprImpl(LIT_EXPR)
                          PsiElement(INTEGER_LITERAL)('1')
                        PsiElement(])(']')
                    PsiWhiteSpace(' ')
                    PsiElement(})('}')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsCastExprImpl(CAST_EXPR)
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('1')
                  PsiWhiteSpace(' ')
                  PsiElement(as)('as')
                  PsiWhiteSpace(' ')
                  RsPathTypeImpl(PATH_TYPE)
                    RsPathImpl(PATH)
                      PsiElement(identifier)('usize')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    PsiWhiteSpace(' ')
                    RsExprStmtImpl(EXPR_STMT)
                      RsCallExprImpl(CALL_EXPR)
                        RsPathExprImpl(PATH_EXPR)
                          RsPathImpl(PATH)
                            PsiElement(identifier)('foo')
                        RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
                          PsiElement(()('(')
                          RsLitExprImpl(LIT_EXPR)
                            PsiElement(INTEGER_LITERAL)('42')
                          PsiElement())(')')
                    PsiWhiteSpace(' ')
                    PsiElement(})('}')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    PsiWhiteSpace(' ')
                    RsExprStmtImpl(EXPR_STMT)
                      RsStructLiteralImpl(STRUCT_LITERAL)
                        RsPathImpl(PATH)
                          PsiElement(identifier)('S2')
                        PsiWhiteSpace(' ')
                        RsStructLiteralBodyImpl(STRUCT_LITERAL_BODY)
                          PsiElement({)('{')
                          PsiWhiteSpace(' ')
                          RsStructLiteralFieldImpl(STRUCT_LITERAL_FIELD)
                            PsiElement(identifier)('x')
                            PsiElement(:)(':')
                            PsiWhiteSpace(' ')
                            RsLitExprImpl(LIT_EXPR)
                              PsiElement(INTEGER_LITERAL)('1')
                          PsiWhiteSpace(' ')
                          PsiElement(})('}')
                    PsiWhiteSpace(' ')
                    PsiElement(})('}')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    PsiWhiteSpace(' ')
                    RsExprStmtImpl(EXPR_STMT)
                      RsDotExprImpl(DOT_EXPR)
                        RsPathExprImpl(PATH_EXPR)
                          RsPathImpl(PATH)
                            PsiElement(identifier)('C')
                        PsiElement(.)('.')
                        RsFieldLookupImpl(FIELD_LOOKUP)
                          PsiElement(INTEGER_LITERAL)('0')
                    PsiWhiteSpace(' ')
                    PsiElement(})('}')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsUnaryExprImpl(UNARY_EXPR)
                  PsiElement(-)('-')
                  RsLitExprImpl(LIT_EXPR)
                    PsiElement(INTEGER_LITERAL)('1')
                PsiElement(,)(',')
                PsiWhiteSpace(' ')
                RsBlockExprImpl(BLOCK_EXPR)
                  RsBlockImpl(BLOCK)
                    PsiElement({)('{')
                    PsiWhiteSpace(' ')
                    RsExprStmtImpl(EXPR_STMT)
                      RsUnaryExprImpl(UNARY_EXPR)
                        PsiElement(!)('!')
                        RsLitExprImpl(LIT_EXPR)
                          PsiElement(BOOL_LITERAL)('true')
                    PsiWhiteSpace(' ')
                    PsiElement(})('}')
                PsiElement(>)('>')
          RsValueArgumentListImpl(VALUE_ARGUMENT_LIST)
            PsiElement(()('(')
            PsiElement())(')')
        PsiElement(;)(';')
      PsiWhiteSpace('\n    ')
      RsExprStmtImpl(EXPR_STMT)
        RsPathExprImpl(PATH_EXPR)
          RsPathImpl(PATH)
            PsiElement(identifier)('S')
            RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
              PsiElement(::)('::')
              PsiElement(<)('<')
              RsPathTypeImpl(PATH_TYPE)
                RsPathImpl(PATH)
                  PsiElement(identifier)('Z')
                  RsTypeArgumentListImpl(TYPE_ARGUMENT_LIST)
                    PsiElement(::)('::')
                    PsiElement(<)('<')
                    RsLitExprImpl(LIT_EXPR)
                      PsiElement(INTEGER_LITERAL)('1')
                    PsiElement(>)('>')
              PsiElement(>)('>')
        PsiElement(;)(';')
      PsiWhiteSpace('\n')
      PsiElement(})('}')
