Format codegen crate with rustfmt 0.7.0
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index f155fbf..37c5edd 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -21,16 +21,16 @@
 #[macro_use]
 extern crate syn;
 
-use quote::ToTokens;
-use syn::{Attribute, Data, DataStruct, DeriveInput, Ident, Item};
 use failure::{err_msg, Error};
 use proc_macro2::{Span, TokenStream};
+use quote::ToTokens;
+use syn::{Attribute, Data, DataStruct, DeriveInput, Ident, Item};
 
-use std::io::{Read, Write};
+use std::collections::BTreeMap;
 use std::fmt::{self, Debug};
 use std::fs::File;
+use std::io::{Read, Write};
 use std::path::Path;
-use std::collections::BTreeMap;
 
 const SYN_CRATE_ROOT: &str = "../src/lib.rs";
 
@@ -46,10 +46,10 @@
 
 fn path_eq(a: &syn::Path, b: &str) -> bool {
     if a.global() {
-        return false
+        return false;
     }
     if a.segments.len() != 1 {
-        return false
+        return false;
     }
     a.segments[0].ident == b
 }
@@ -83,7 +83,11 @@
 // NOTE: BTreeMap is used here instead of HashMap to have deterministic output.
 type Lookup = BTreeMap<Ident, AstItem>;
 
-fn load_file<P: AsRef<Path>>(name: P, features: &TokenStream, lookup: &mut Lookup) -> Result<(), Error> {
+fn load_file<P: AsRef<Path>>(
+    name: P,
+    features: &TokenStream,
+    lookup: &mut Lookup,
+) -> Result<(), Error> {
     let name = name.as_ref();
     let parent = name.parent().ok_or_else(|| err_msg("no parent path"))?;
 
@@ -160,21 +164,24 @@
             Item::Struct(item) => {
                 let ident = item.ident;
                 if EXTRA_TYPES.contains(&&ident.to_string()[..]) {
-                    lookup.insert(ident.clone(), AstItem {
-                        ast: DeriveInput {
-                            ident: ident,
-                            vis: item.vis,
-                            attrs: item.attrs,
-                            generics: item.generics,
-                            data: Data::Struct(DataStruct {
-                                fields: item.fields,
-                                struct_token: item.struct_token,
-                                semi_token: item.semi_token,
-                            }),
+                    lookup.insert(
+                        ident.clone(),
+                        AstItem {
+                            ast: DeriveInput {
+                                ident: ident,
+                                vis: item.vis,
+                                attrs: item.attrs,
+                                generics: item.generics,
+                                data: Data::Struct(DataStruct {
+                                    fields: item.fields,
+                                    struct_token: item.struct_token,
+                                    semi_token: item.semi_token,
+                                }),
+                            },
+                            features: features.clone(),
+                            eos_full: false,
                         },
-                        features: features.clone(),
-                        eos_full: false,
-                    });
+                    );
                 }
             }
             _ => {}
@@ -186,10 +193,10 @@
 mod parsing {
     use super::AstItem;
 
+    use proc_macro2::TokenStream;
     use syn;
     use syn::synom::*;
     use syn::*;
-    use proc_macro2::TokenStream;
 
     // Parses #full - returns #[cfg(feature = "full")] if it is present, and
     // nothing otherwise.
@@ -331,11 +338,11 @@
 
 mod codegen {
     use super::{AstItem, Lookup};
-    use syn::*;
-    use syn::punctuated::Punctuated;
+    use proc_macro2::{Span, TokenStream};
     use quote::ToTokens;
     use std::fmt::{self, Display};
-    use proc_macro2::{Span, TokenStream};
+    use syn::punctuated::Punctuated;
+    use syn::*;
 
     #[derive(Default)]
     pub struct State {
@@ -365,7 +372,10 @@
 
     fn classify<'a>(ty: &'a Type, lookup: &'a Lookup) -> RelevantType<'a> {
         match *ty {
-            Type::Path(TypePath { qself: None, ref path }) => {
+            Type::Path(TypePath {
+                qself: None,
+                ref path,
+            }) => {
                 let last = path.segments.last().unwrap().into_value();
                 match &last.ident.to_string()[..] {
                     "Box" => RelevantType::Box(first_arg(&last.arguments)),
@@ -384,10 +394,10 @@
                     }
                 }
             }
-            Type::Tuple(TypeTuple { ref elems, .. }) => {
-                RelevantType::Tuple(elems)
-            }
-            Type::Macro(TypeMacro { ref mac }) if mac.path.segments.last().unwrap().into_value().ident == "Token" => {
+            Type::Tuple(TypeTuple { ref elems, .. }) => RelevantType::Tuple(elems),
+            Type::Macro(TypeMacro { ref mac })
+                if mac.path.segments.last().unwrap().into_value().ident == "Token" =>
+            {
                 RelevantType::Token(mac.into_token_stream())
             }
             _ => RelevantType::Pass,
@@ -406,8 +416,8 @@
         Owned(TokenStream),
     }
 
-    use self::Operand::*;
     use self::Kind::*;
+    use self::Operand::*;
 
     impl Operand {
         fn tokens(&self) -> &TokenStream {
@@ -450,7 +460,8 @@
             _ => panic!("Expected at least 1 type argument here"),
         };
 
-        match **data.args
+        match **data
+            .args
             .first()
             .expect("Expected at least 1 type argument here")
             .value()
@@ -460,11 +471,7 @@
         }
     }
 
-    fn simple_visit(
-        item: &AstItem,
-        kind: Kind,
-        name: &Operand,
-    ) -> String {
+    fn simple_visit(item: &AstItem, kind: Kind, name: &Operand) -> String {
         match kind {
             Visit => format!(
                 "_visitor.visit_{under_name}({name})",
@@ -484,12 +491,7 @@
         }
     }
 
-    fn box_visit(
-        elem: &Type,
-        lookup: &Lookup,
-        kind: Kind,
-        name: &Operand,
-    ) -> Option<String> {
+    fn box_visit(elem: &Type, lookup: &Lookup, kind: Kind, name: &Operand) -> Option<String> {
         let name = name.owned_tokens();
         let res = visit(elem, lookup, kind, &Owned(quote!(*#name)))?;
         Some(match kind {
@@ -498,32 +500,23 @@
         })
     }
 
-    fn vec_visit(
-        elem: &Type,
-        lookup: &Lookup,
-        kind: Kind,
-        name: &Operand,
-    ) -> Option<String> {
+    fn vec_visit(elem: &Type, lookup: &Lookup, kind: Kind, name: &Operand) -> Option<String> {
         let operand = match kind {
             Visit | VisitMut => Borrowed(quote!(it)),
             Fold => Owned(quote!(it)),
         };
         let val = visit(elem, lookup, kind, &operand)?;
         Some(match kind {
-            Visit => {
-                format!(
-                    "for it in {name} {{ {val} }}",
-                    name = name.ref_tokens(),
-                    val = val,
-                )
-            }
-            VisitMut => {
-                format!(
-                    "for it in {name} {{ {val} }}",
-                    name = name.ref_mut_tokens(),
-                    val = val,
-                )
-            }
+            Visit => format!(
+                "for it in {name} {{ {val} }}",
+                name = name.ref_tokens(),
+                val = val,
+            ),
+            VisitMut => format!(
+                "for it in {name} {{ {val} }}",
+                name = name.ref_mut_tokens(),
+                val = val,
+            ),
             Fold => format!(
                 "FoldHelper::lift({name}, |it| {{ {val} }})",
                 name = name.owned_tokens(),
@@ -544,26 +537,22 @@
         };
         let val = visit(elem, lookup, kind, &operand)?;
         Some(match kind {
-            Visit => {
-                format!(
-                    "for el in Punctuated::pairs({name}) {{ \
-                        let it = el.value(); \
-                        {val} \
-                        }}",
-                    name = name.ref_tokens(),
-                    val = val,
-                )
-            }
-            VisitMut => {
-                format!(
-                    "for mut el in Punctuated::pairs_mut({name}) {{ \
-                        let it = el.value_mut(); \
-                        {val} \
-                        }}",
-                    name = name.ref_mut_tokens(),
-                    val = val,
-                )
-            }
+            Visit => format!(
+                "for el in Punctuated::pairs({name}) {{ \
+                 let it = el.value(); \
+                 {val} \
+                 }}",
+                name = name.ref_tokens(),
+                val = val,
+            ),
+            VisitMut => format!(
+                "for mut el in Punctuated::pairs_mut({name}) {{ \
+                 let it = el.value_mut(); \
+                 {val} \
+                 }}",
+                name = name.ref_mut_tokens(),
+                val = val,
+            ),
             Fold => format!(
                 "FoldHelper::lift({name}, |it| {{ {val} }})",
                 name = name.owned_tokens(),
@@ -572,12 +561,7 @@
         })
     }
 
-    fn option_visit(
-        elem: &Type,
-        lookup: &Lookup,
-        kind: Kind,
-        name: &Operand,
-    ) -> Option<String> {
+    fn option_visit(elem: &Type, lookup: &Lookup, kind: Kind, name: &Operand) -> Option<String> {
         let it = match kind {
             Visit | VisitMut => Borrowed(quote!(it)),
             Fold => Owned(quote!(it)),
@@ -613,8 +597,7 @@
             let name = name.tokens();
             let i = Index::from(i);
             let it = Owned(quote!((#name).#i));
-            let val = visit(elem, lookup, kind, &it)
-                .unwrap_or_else(|| noop_visit(kind, &it));
+            let val = visit(elem, lookup, kind, &it).unwrap_or_else(|| noop_visit(kind, &it));
             code.push_str(&format!("            {}", val));
             match kind {
                 Fold => code.push(','),
@@ -626,12 +609,8 @@
             None
         } else {
             Some(match kind {
-                Fold => {
-                    format!("(\n{}        )", code)
-                }
-                Visit | VisitMut => {
-                    format!("\n{}        ", code)
-                }
+                Fold => format!("(\n{}        )", code),
+                Visit | VisitMut => format!("\n{}        ", code),
             })
         }
     }
@@ -663,21 +642,11 @@
 
     fn visit(ty: &Type, lookup: &Lookup, kind: Kind, name: &Operand) -> Option<String> {
         match classify(ty, lookup) {
-            RelevantType::Box(elem) => {
-                box_visit(elem, lookup, kind, name)
-            }
-            RelevantType::Vec(elem) => {
-                vec_visit(elem, lookup, kind, name)
-            }
-            RelevantType::Punctuated(elem) => {
-                punctuated_visit(elem, lookup, kind, name)
-            }
-            RelevantType::Option(elem) => {
-                option_visit(elem, lookup, kind, name)
-            }
-            RelevantType::Tuple(elems) => {
-                tuple_visit(elems, lookup, kind, name)
-            }
+            RelevantType::Box(elem) => box_visit(elem, lookup, kind, name),
+            RelevantType::Vec(elem) => vec_visit(elem, lookup, kind, name),
+            RelevantType::Punctuated(elem) => punctuated_visit(elem, lookup, kind, name),
+            RelevantType::Option(elem) => option_visit(elem, lookup, kind, name),
+            RelevantType::Tuple(elems) => tuple_visit(elems, lookup, kind, name),
             RelevantType::Simple(item) => {
                 let mut res = simple_visit(item, kind, name);
                 Some(if item.eos_full {
@@ -686,12 +655,8 @@
                     res
                 })
             }
-            RelevantType::Token(ty) => {
-                Some(token_visit(ty, kind, name))
-            }
-            RelevantType::Pass => {
-                None
-            }
+            RelevantType::Token(ty) => Some(token_visit(ty, kind, name)),
+            RelevantType::Pass => None,
         }
     }
 
@@ -767,7 +732,8 @@
                             state.visit_mut_impl.push_str(&binding);
                             state.fold_impl.push_str(&binding);
 
-                            let res = fields.unnamed
+                            let res = fields
+                                .unnamed
                                 .iter()
                                 .enumerate()
                                 .map(|(idx, el)| {
@@ -797,16 +763,17 @@
                             res
                         }
                         Fields::Unit => {
-                            state
-                                .visit_impl
-                                .push_str(&format!("        {0}::{1} => {{ }}\n", s.ast.ident, variant.ident));
-                            state
-                                .visit_mut_impl
-                                .push_str(&format!("        {0}::{1} => {{ }}\n", s.ast.ident, variant.ident));
+                            state.visit_impl.push_str(&format!(
+                                "        {0}::{1} => {{ }}\n",
+                                s.ast.ident, variant.ident
+                            ));
+                            state.visit_mut_impl.push_str(&format!(
+                                "        {0}::{1} => {{ }}\n",
+                                s.ast.ident, variant.ident
+                            ));
                             state.fold_impl.push_str(&format!(
                                 "        {0}::{1} => {{ {0}::{1} }}\n",
-                                s.ast.ident,
-                                variant.ident
+                                s.ast.ident, variant.ident
                             ));
                             continue;
                         }
@@ -817,41 +784,28 @@
                         state.visit_mut_impl.push_str(") => {\n");
                         state.fold_impl.push_str(") => {\n");
                     }
-                    state
-                        .fold_impl
-                        .push_str(&format!("            {}::{} (\n", s.ast.ident, variant.ident,));
+                    state.fold_impl.push_str(&format!(
+                        "            {}::{} (\n",
+                        s.ast.ident, variant.ident,
+                    ));
                     for (field, binding) in fields {
                         state.visit_impl.push_str(&format!(
                             "            {};\n",
-                            visit(
-                                &field.ty,
-                                lookup,
-                                Visit,
-                                &Borrowed(binding.clone())
-                            ).unwrap_or_else(|| noop_visit(
-                                Visit,
-                                &Borrowed(binding.clone())
-                            )),
+                            visit(&field.ty, lookup, Visit, &Borrowed(binding.clone()))
+                                .unwrap_or_else(|| noop_visit(Visit, &Borrowed(binding.clone()))),
                         ));
                         state.visit_mut_impl.push_str(&format!(
                             "            {};\n",
-                            visit(
-                                &field.ty,
-                                lookup,
-                                VisitMut,
-                                &Borrowed(binding.clone())
-                            ).unwrap_or_else(|| noop_visit(
-                                VisitMut,
-                                &Borrowed(binding.clone())
-                            )),
+                            visit(&field.ty, lookup, VisitMut, &Borrowed(binding.clone()))
+                                .unwrap_or_else(|| noop_visit(
+                                    VisitMut,
+                                    &Borrowed(binding.clone())
+                                )),
                         ));
                         state.fold_impl.push_str(&format!(
                             "                {},\n",
                             visit(&field.ty, lookup, Fold, &Owned(binding.clone()))
-                                .unwrap_or_else(|| noop_visit(
-                                    Fold,
-                                    &Owned(binding)
-                                )),
+                                .unwrap_or_else(|| noop_visit(Fold, &Owned(binding))),
                         ));
                     }
                     state.fold_impl.push_str("            )\n");
@@ -870,7 +824,8 @@
                         state
                             .fold_impl
                             .push_str(&format!("    {} {{\n", s.ast.ident));
-                        fields.named
+                        fields
+                            .named
                             .iter()
                             .map(|el| {
                                 let id = el.ident.clone();
@@ -882,7 +837,8 @@
                         state
                             .fold_impl
                             .push_str(&format!("    {} (\n", s.ast.ident));
-                        fields.unnamed
+                        fields
+                            .unnamed
                             .iter()
                             .enumerate()
                             .map(|(idx, el)| {
@@ -893,7 +849,9 @@
                     }
                     Fields::Unit => {
                         if s.ast.ident == "Ident" {
-                            state.fold_impl.push_str("    Ident::new(&_i.to_string(), _visitor.fold_span(_i.span()))\n");
+                            state.fold_impl.push_str(
+                                "    Ident::new(&_i.to_string(), _visitor.fold_span(_i.span()))\n",
+                            );
                         } else {
                             state.fold_impl.push_str("    _i\n");
                         }
@@ -906,24 +864,15 @@
                     state.visit_impl.push_str(&format!(
                         "    {};\n",
                         visit(&field.ty, lookup, Visit, &ref_toks)
-                            .unwrap_or_else(|| noop_visit(
-                                Visit,
-                                &ref_toks,
-                            ))
+                            .unwrap_or_else(|| noop_visit(Visit, &ref_toks,))
                     ));
                     state.visit_mut_impl.push_str(&format!(
                         "    {};\n",
                         visit(&field.ty, lookup, VisitMut, &ref_toks)
-                            .unwrap_or_else(|| noop_visit(
-                                VisitMut,
-                                &ref_toks,
-                            ))
+                            .unwrap_or_else(|| noop_visit(VisitMut, &ref_toks,))
                     ));
                     let fold = visit(&field.ty, lookup, Fold, &ref_toks)
-                        .unwrap_or_else(|| noop_visit(
-                            Fold,
-                            &ref_toks,
-                        ));
+                        .unwrap_or_else(|| noop_visit(Fold, &ref_toks));
                     if let Some(ref name) = field.ident {
                         state
                             .fold_impl
@@ -949,7 +898,11 @@
 
         if let Data::Struct(ref data) = s.ast.data {
             if let Fields::Named(ref fields) = data.fields {
-                if fields.named.iter().any(|field| field.vis == Visibility::Inherited) {
+                if fields
+                    .named
+                    .iter()
+                    .any(|field| field.vis == Visibility::Inherited)
+                {
                     // Discard the generated impl if there are private fields.
                     // These have to be handwritten.
                     state.fold_impl.truncate(before_fold_impl_len);