Represent the unsafety on foreign module
diff --git a/syntax/file.rs b/syntax/file.rs
index f227900..dfe8e0d 100644
--- a/syntax/file.rs
+++ b/syntax/file.rs
@@ -2,7 +2,7 @@
 use quote::quote;
 use syn::parse::{Error, Parse, ParseStream, Result};
 use syn::{
-    braced, token, Attribute, Ident, Item as RustItem, ItemEnum, ItemForeignMod, ItemStruct,
+    braced, token, Abi, Attribute, ForeignItem, Ident, Item as RustItem, ItemEnum, ItemStruct,
     ItemUse, Token, Visibility,
 };
 
@@ -25,6 +25,14 @@
     Other(RustItem),
 }
 
+pub struct ItemForeignMod {
+    pub attrs: Vec<Attribute>,
+    pub unsafety: Option<Token![unsafe]>,
+    pub abi: Abi,
+    pub brace_token: token::Brace,
+    pub items: Vec<ForeignItem>,
+}
+
 impl Parse for Module {
     fn parse(input: ParseStream) -> Result<Self> {
         let namespace = Namespace::none();
@@ -71,7 +79,13 @@
         match item {
             RustItem::Struct(item) => Ok(Item::Struct(item)),
             RustItem::Enum(item) => Ok(Item::Enum(item)),
-            RustItem::ForeignMod(item) => Ok(Item::ForeignMod(item)),
+            RustItem::ForeignMod(item) => Ok(Item::ForeignMod(ItemForeignMod {
+                attrs: item.attrs,
+                unsafety: None,
+                abi: item.abi,
+                brace_token: item.brace_token,
+                items: item.items,
+            })),
             RustItem::Use(item) => Ok(Item::Use(item)),
             other => Ok(Item::Other(other)),
         }