1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
use proc_macro2::TokenStream; use quote::quote; use witx::BuiltinType; pub(crate) trait BuiltinTypeExt { fn to_inner(self) -> TokenStream; } impl BuiltinTypeExt for BuiltinType { fn to_inner(self) -> TokenStream { match self { BuiltinType::String => unimplemented!("Strings not supported"), BuiltinType::Char8 => quote! { u8 }, BuiltinType::USize => quote! { u32 }, BuiltinType::U8 => quote! { u8 }, BuiltinType::U16 => quote! { u16 }, BuiltinType::U32 => quote! { u32 }, BuiltinType::U64 => quote! { u64 }, BuiltinType::S8 => quote! { i8 }, BuiltinType::S16 => quote! { i16 }, BuiltinType::S32 => quote! { i32 }, BuiltinType::S64 => quote! { i64 }, BuiltinType::F32 => quote! { f32 }, BuiltinType::F64 => quote! { f64 }, } } }