diff --git a/src/lib.rs b/src/lib.rs index 0a2c94a..fb1d974 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -157,6 +157,7 @@ pub enum Type<'a> { Int64(StorageClass), Uint64(StorageClass), Wchar(StorageClass), + Char16(StorageClass), Float(StorageClass), Double(StorageClass), Ldouble(StorageClass), @@ -800,6 +801,7 @@ impl<'a> ParserState<'a> { b'J' => Type::Int64(sc), b'K' => Type::Uint64(sc), b'W' => Type::Wchar(sc), + b'S' => Type::Char16(sc), _ => { return Err(Error::new(format!( "unknown primitive type: {}", @@ -1148,6 +1150,10 @@ impl<'a> Serializer<'a> { write!(self.w, "long double")?; sc } + &Type::Char16(sc) => { + write!(self.w, "char16_t")?; + sc + } }; if storage_class.contains(StorageClass::CONST) {