diff --git a/codegen/src/parse.rs b/codegen/src/parse.rs
index c7a087d..eff8539 100644
--- a/codegen/src/parse.rs
+++ b/codegen/src/parse.rs
@@ -119,8 +119,9 @@
             ref path,
         }) => {
             let last = path.segments.last().unwrap().into_value();
+            let string = last.ident.to_string();
 
-            match &last.ident.to_string()[..] {
+            match string.as_str() {
                 "Option" => {
                     let nested = introspect_type(first_arg(&last.arguments), items, tokens);
                     types::Type::Option(Box::new(nested))
@@ -145,18 +146,14 @@
                     let nested = introspect_type(first_arg(&last.arguments), items, tokens);
                     types::Type::Box(Box::new(nested))
                 }
-                "Brace" | "Bracket" | "Paren" | "Group" => {
-                    types::Type::Group(last.ident.to_string())
-                }
-                "TokenStream" | "Literal" | "Ident" | "Span" => {
-                    types::Type::Ext(last.ident.to_string())
-                }
-                "String" | "u32" | "usize" | "bool" => types::Type::Std(last.ident.to_string()),
+                "Brace" | "Bracket" | "Paren" | "Group" => types::Type::Group(string),
+                "TokenStream" | "Literal" | "Ident" | "Span" => types::Type::Ext(string),
+                "String" | "u32" | "usize" | "bool" => types::Type::Std(string),
                 _ => {
                     if items.get(&last.ident).is_some() {
-                        types::Type::Syn(last.ident.to_string())
+                        types::Type::Syn(string)
                     } else {
-                        unimplemented!("{}", last.ident.to_string());
+                        unimplemented!("{}", string);
                     }
                 }
             }
