no ns for keyword

main
Ziyang Hu 2 years ago
parent 1dafb53f7f
commit 46c7a6a6ac

@ -83,7 +83,7 @@ impl TryFrom<&'_ JsonValue> for Attribute {
.ok_or_else(|| JsonError::MissingField(value.clone(), "keyword".to_string()))?;
let keyword = Keyword::try_from(keyword)?;
if keyword.is_reserved() {
return Err(KeywordError::ReservedKeyword(keyword.clone()).into());
return Err(KeywordError::ReservedKeyword(keyword).into());
}
let cardinality = map
.get("cardinality")

@ -49,9 +49,21 @@ impl TryFrom<&[u8]> for Keyword {
impl Keyword {
pub(crate) fn is_reserved(&self) -> bool {
self.0.starts_with('_')
self.0.is_empty() || self.0.starts_with(['_', ':'])
}
pub(crate) fn to_string_no_prefix(&self) -> String {
format!("{}", self.0)
}
}
#[cfg(test)]
mod tests {
use crate::data::keyword::Keyword;
#[test]
fn reserved_kw() {
assert!(Keyword("_a".into()).is_reserved());
assert!(Keyword(":a".into()).is_reserved());
assert!(Keyword("".into()).is_reserved());
}
}

Loading…
Cancel
Save