diff --git a/syntax/parse.rs b/syntax/parse.rs
index 7bae707..00ea15c 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -1,5 +1,5 @@
 use crate::syntax::{
-    attrs, error, Api, Atom, Doc, ExternFn, ExternType, Receiver, Ref, Struct, Ty1, Type, Var,
+    attrs, error, Api, Atom, Doc, ExternFn, ExternType, Lang, Receiver, Ref, Struct, Ty1, Type, Var,
 };
 use proc_macro2::Ident;
 use quote::quote;
@@ -8,12 +8,6 @@
     ItemForeignMod, ItemStruct, Pat, PathArguments, Result, ReturnType, Type as RustType,
 };
 
-#[derive(Copy, Clone)]
-enum Lang {
-    Cxx,
-    Rust,
-}
-
 pub fn parse_items(items: Vec<Item>) -> Result<Vec<Api>> {
     let mut apis = Vec::new();
     for item in items {
@@ -92,7 +86,7 @@
                 items.push(api_type(ety));
             }
             ForeignItem::Fn(foreign) => {
-                let efn = parse_extern_fn(foreign)?;
+                let efn = parse_extern_fn(foreign, lang)?;
                 items.push(api_function(efn));
             }
             ForeignItem::Macro(foreign) if foreign.mac.path.is_ident("include") => {
@@ -133,7 +127,7 @@
     })
 }
 
-fn parse_extern_fn(foreign_fn: &ForeignItemFn) -> Result<ExternFn> {
+fn parse_extern_fn(foreign_fn: &ForeignItemFn, lang: Lang) -> Result<ExternFn> {
     let generics = &foreign_fn.sig.generics;
     if !generics.params.is_empty() || generics.where_clause.is_some() {
         return Err(Error::new_spanned(
@@ -211,6 +205,7 @@
     let ident = foreign_fn.sig.ident.clone();
     let semi_token = foreign_fn.semi_token;
     Ok(ExternFn {
+        lang,
         doc,
         fn_token,
         ident,
