Allow namespace to be given as a quoted string
diff --git a/syntax/namespace.rs b/syntax/namespace.rs
index bdfb845..49b31d1 100644
--- a/syntax/namespace.rs
+++ b/syntax/namespace.rs
@@ -32,7 +32,9 @@
if !input.is_empty() {
input.parse::<kw::namespace>()?;
input.parse::<Token![=]>()?;
- segments = input.call(QualifiedName::parse_unquoted)?.segments;
+ segments = input
+ .call(QualifiedName::parse_quoted_or_unquoted)?
+ .segments;
input.parse::<Option<Token![,]>>()?;
}
Ok(Namespace { segments })
diff --git a/syntax/qualified.rs b/syntax/qualified.rs
index a340093..be9bceb 100644
--- a/syntax/qualified.rs
+++ b/syntax/qualified.rs
@@ -1,6 +1,6 @@
use syn::ext::IdentExt;
use syn::parse::{ParseStream, Result};
-use syn::{Ident, Token};
+use syn::{Ident, LitStr, Token};
pub struct QualifiedName {
pub segments: Vec<Ident>,
@@ -23,4 +23,13 @@
}
Ok(QualifiedName { segments })
}
+
+ pub fn parse_quoted_or_unquoted(input: ParseStream) -> Result<Self> {
+ if input.peek(LitStr) {
+ let lit: LitStr = input.parse()?;
+ lit.parse_with(Self::parse_unquoted)
+ } else {
+ Self::parse_unquoted(input)
+ }
+ }
}