Redesign MetaItem naming
diff --git a/src/attr.rs b/src/attr.rs
index 393ffc8..d2ca870 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -94,8 +94,8 @@
}
impl Attribute {
- /// Parses the tokens after the path as a [`MetaItem`](enum.MetaItem.html) if possible.
- pub fn meta_item(&self) -> Option<MetaItem> {
+ /// Parses the tokens after the path as a [`Meta`](enum.Meta.html) if possible.
+ pub fn interpret_meta(&self) -> Option<Meta> {
let name = if self.path.segments.len() == 1 {
&self.path.segments.first().unwrap().value().ident
} else {
@@ -103,7 +103,7 @@
};
if self.tts.is_empty() {
- return Some(MetaItem::Term(*name));
+ return Some(Meta::Word(*name));
}
let tts = self.tts.clone().into_iter().collect::<Vec<_>>();
@@ -112,7 +112,7 @@
if let TokenNode::Group(Delimiter::Parenthesis, ref ts) = tts[0].kind {
let tokens = ts.clone().into_iter().collect::<Vec<_>>();
if let Some(nested_meta_items) = list_of_nested_meta_items_from_tokens(&tokens) {
- return Some(MetaItem::List(MetaItemList {
+ return Some(Meta::List(MetaList {
paren_token: token::Paren(tts[0].span),
ident: *name,
nested: nested_meta_items,
@@ -124,7 +124,7 @@
if tts.len() == 2 {
if let TokenNode::Op('=', Spacing::Alone) = tts[0].kind {
if let TokenNode::Literal(ref lit) = tts[1].kind {
- return Some(MetaItem::NameValue(MetaNameValue {
+ return Some(Meta::NameValue(MetaNameValue {
ident: *name,
eq_token: Token,
lit: Lit::new(lit.clone(), tts[1].span),
@@ -137,13 +137,13 @@
}
}
-fn nested_meta_item_from_tokens(tts: &[TokenTree]) -> Option<(NestedMetaItem, &[TokenTree])> {
+fn nested_meta_item_from_tokens(tts: &[TokenTree]) -> Option<(NestedMeta, &[TokenTree])> {
assert!(!tts.is_empty());
match tts[0].kind {
TokenNode::Literal(ref lit) => {
let lit = Lit::new(lit.clone(), tts[0].span);
- Some((NestedMetaItem::Literal(lit), &tts[1..]))
+ Some((NestedMeta::Literal(lit), &tts[1..]))
}
TokenNode::Term(sym) => {
@@ -156,7 +156,7 @@
eq_token: Token,
lit: Lit::new(lit.clone(), tts[2].span),
};
- return Some((MetaItem::NameValue(pair).into(), &tts[3..]));
+ return Some((Meta::NameValue(pair).into(), &tts[3..]));
}
}
}
@@ -166,12 +166,12 @@
let inner_tts = inner_tts.clone().into_iter().collect::<Vec<_>>();
return match list_of_nested_meta_items_from_tokens(&inner_tts) {
Some(nested_meta_items) => {
- let list = MetaItemList {
+ let list = MetaList {
ident: ident,
paren_token: token::Paren(tts[1].span),
nested: nested_meta_items,
};
- Some((MetaItem::List(list).into(), &tts[2..]))
+ Some((Meta::List(list).into(), &tts[2..]))
}
None => None,
@@ -179,7 +179,7 @@
}
}
- Some((MetaItem::Term(ident).into(), &tts[1..]))
+ Some((Meta::Word(ident).into(), &tts[1..]))
}
_ => None,
@@ -188,7 +188,7 @@
fn list_of_nested_meta_items_from_tokens(
mut tts: &[TokenTree],
-) -> Option<Punctuated<NestedMetaItem, Token![,]>> {
+) -> Option<Punctuated<NestedMeta, Token![,]>> {
let mut nested_meta_items = Punctuated::new();
let mut first = true;
@@ -246,16 +246,16 @@
/// A compile-time attribute item.
///
/// E.g. `#[test]`, `#[derive(..)]` or `#[feature = "foo"]`
- pub enum MetaItem {
+ pub enum Meta {
/// Term meta item.
///
/// E.g. `test` as in `#[test]`
- pub Term(Ident),
+ pub Word(Ident),
/// List meta item.
///
/// E.g. `derive(..)` as in `#[derive(..)]`
- pub List(MetaItemList {
+ pub List(MetaList {
/// Name of this attribute.
///
/// E.g. `derive` in `#[derive(..)]`
@@ -266,7 +266,7 @@
/// Arguments to this attribute
///
/// E.g. `..` in `#[derive(..)]`
- pub nested: Punctuated<NestedMetaItem, Token![,]>,
+ pub nested: Punctuated<NestedMeta, Token![,]>,
}),
/// Name-value meta item.
@@ -288,16 +288,16 @@
}
}
-impl MetaItem {
+impl Meta {
/// Name of the item.
///
/// E.g. `test` as in `#[test]`, `derive` as in `#[derive(..)]`, and
/// `feature` as in `#[feature = "foo"]`.
pub fn name(&self) -> &str {
match *self {
- MetaItem::Term(ref name) => name.as_ref(),
- MetaItem::NameValue(ref pair) => pair.ident.as_ref(),
- MetaItem::List(ref list) => list.ident.as_ref(),
+ Meta::Word(ref name) => name.as_ref(),
+ Meta::NameValue(ref pair) => pair.ident.as_ref(),
+ Meta::List(ref list) => list.ident.as_ref(),
}
}
}
@@ -306,11 +306,11 @@
/// Possible values inside of compile-time attribute lists.
///
/// E.g. the '..' in `#[name(..)]`.
- pub enum NestedMetaItem {
- /// A full `MetaItem`.
+ pub enum NestedMeta {
+ /// A full `Meta`.
///
- /// E.g. `Copy` in `#[derive(Copy)]` would be a `MetaItem::Term(Ident::from("Copy"))`.
- pub MetaItem(MetaItem),
+ /// E.g. `Copy` in `#[derive(Copy)]` would be a `Meta::Word(Ident::from("Copy"))`.
+ pub Meta(Meta),
/// A Rust literal.
///
@@ -491,7 +491,7 @@
fn to_tokens(&self, tokens: &mut Tokens) {
// If this was a sugared doc, emit it in its original form instead of `#[doc = "..."]`
if self.is_sugared_doc {
- if let Some(MetaItem::NameValue(ref pair)) = self.meta_item() {
+ if let Some(Meta::NameValue(ref pair)) = self.interpret_meta() {
if pair.ident == "doc" {
if let Lit::Str(ref comment) = pair.lit {
tokens.append(TokenTree {
@@ -515,7 +515,7 @@
}
}
- impl ToTokens for MetaItemList {
+ impl ToTokens for MetaList {
fn to_tokens(&self, tokens: &mut Tokens) {
self.ident.to_tokens(tokens);
self.paren_token.surround(tokens, |tokens| {
diff --git a/src/gen/fold.rs b/src/gen/fold.rs
index 190e3b6..6c1d54b 100644
--- a/src/gen/fold.rs
+++ b/src/gen/fold.rs
@@ -272,9 +272,9 @@
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn fold_member(&mut self, i: Member) -> Member { fold_member(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
+fn fold_meta(&mut self, i: Meta) -> Meta { fold_meta(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
+fn fold_meta_list(&mut self, i: MetaList) -> MetaList { fold_meta_list(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
# [ cfg ( feature = "full" ) ]
@@ -282,7 +282,7 @@
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
fn fold_method_turbofish(&mut self, i: MethodTurbofish) -> MethodTurbofish { fold_method_turbofish(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
+fn fold_nested_meta(&mut self, i: NestedMeta) -> NestedMeta { fold_nested_meta(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
@@ -2101,31 +2101,31 @@
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn fold_meta_item<V: Fold + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
+pub fn fold_meta<V: Fold + ?Sized>(_visitor: &mut V, _i: Meta) -> Meta {
match _i {
- MetaItem::Term(_binding_0, ) => {
- MetaItem::Term (
+ Meta::Word(_binding_0, ) => {
+ Meta::Word (
_visitor.fold_ident(_binding_0),
)
}
- MetaItem::List(_binding_0, ) => {
- MetaItem::List (
- _visitor.fold_meta_item_list(_binding_0),
+ Meta::List(_binding_0, ) => {
+ Meta::List (
+ _visitor.fold_meta_list(_binding_0),
)
}
- MetaItem::NameValue(_binding_0, ) => {
- MetaItem::NameValue (
+ Meta::NameValue(_binding_0, ) => {
+ Meta::NameValue (
_visitor.fold_meta_name_value(_binding_0),
)
}
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn fold_meta_item_list<V: Fold + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
- MetaItemList {
+pub fn fold_meta_list<V: Fold + ?Sized>(_visitor: &mut V, _i: MetaList) -> MetaList {
+ MetaList {
ident: _visitor.fold_ident(_i . ident),
paren_token: Paren(tokens_helper(_visitor, &(_i . paren_token).0)),
- nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
+ nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta(it) }),
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
@@ -2156,15 +2156,15 @@
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn fold_nested_meta_item<V: Fold + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
+pub fn fold_nested_meta<V: Fold + ?Sized>(_visitor: &mut V, _i: NestedMeta) -> NestedMeta {
match _i {
- NestedMetaItem::MetaItem(_binding_0, ) => {
- NestedMetaItem::MetaItem (
- _visitor.fold_meta_item(_binding_0),
+ NestedMeta::Meta(_binding_0, ) => {
+ NestedMeta::Meta (
+ _visitor.fold_meta(_binding_0),
)
}
- NestedMetaItem::Literal(_binding_0, ) => {
- NestedMetaItem::Literal (
+ NestedMeta::Literal(_binding_0, ) => {
+ NestedMeta::Literal (
_visitor.fold_lit(_binding_0),
)
}
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index 5f0cb02..3ca8e38 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -270,9 +270,9 @@
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn visit_member(&mut self, i: &'ast Member) { visit_member(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item(&mut self, i: &'ast MetaItem) { visit_meta_item(self, i) }
+fn visit_meta(&mut self, i: &'ast Meta) { visit_meta(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item_list(&mut self, i: &'ast MetaItemList) { visit_meta_item_list(self, i) }
+fn visit_meta_list(&mut self, i: &'ast MetaList) { visit_meta_list(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn visit_meta_name_value(&mut self, i: &'ast MetaNameValue) { visit_meta_name_value(self, i) }
# [ cfg ( feature = "full" ) ]
@@ -280,7 +280,7 @@
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
fn visit_method_turbofish(&mut self, i: &'ast MethodTurbofish) { visit_method_turbofish(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_nested_meta_item(&mut self, i: &'ast NestedMetaItem) { visit_nested_meta_item(self, i) }
+fn visit_nested_meta(&mut self, i: &'ast NestedMeta) { visit_nested_meta(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn visit_parenthesized_generic_arguments(&mut self, i: &'ast ParenthesizedGenericArguments) { visit_parenthesized_generic_arguments(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
@@ -1666,24 +1666,24 @@
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaItem) {
+pub fn visit_meta<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Meta) {
match *_i {
- MetaItem::Term(ref _binding_0, ) => {
+ Meta::Word(ref _binding_0, ) => {
_visitor.visit_ident(_binding_0);
}
- MetaItem::List(ref _binding_0, ) => {
- _visitor.visit_meta_item_list(_binding_0);
+ Meta::List(ref _binding_0, ) => {
+ _visitor.visit_meta_list(_binding_0);
}
- MetaItem::NameValue(ref _binding_0, ) => {
+ Meta::NameValue(ref _binding_0, ) => {
_visitor.visit_meta_name_value(_binding_0);
}
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item_list<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaItemList) {
+pub fn visit_meta_list<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaList) {
_visitor.visit_ident(& _i . ident);
tokens_helper(_visitor, &(& _i . paren_token).0);
- for el in Punctuated::pairs(& _i . nested) { let it = el.value(); _visitor.visit_nested_meta_item(it) };
+ for el in Punctuated::pairs(& _i . nested) { let it = el.value(); _visitor.visit_nested_meta(it) };
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
pub fn visit_meta_name_value<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast MetaNameValue) {
@@ -1707,12 +1707,12 @@
tokens_helper(_visitor, &(& _i . gt_token).0);
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_nested_meta_item<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast NestedMetaItem) {
+pub fn visit_nested_meta<'ast, V: Visit<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast NestedMeta) {
match *_i {
- NestedMetaItem::MetaItem(ref _binding_0, ) => {
- _visitor.visit_meta_item(_binding_0);
+ NestedMeta::Meta(ref _binding_0, ) => {
+ _visitor.visit_meta(_binding_0);
}
- NestedMetaItem::Literal(ref _binding_0, ) => {
+ NestedMeta::Literal(ref _binding_0, ) => {
_visitor.visit_lit(_binding_0);
}
}
diff --git a/src/gen/visit_mut.rs b/src/gen/visit_mut.rs
index 96f3338..e11e97d 100644
--- a/src/gen/visit_mut.rs
+++ b/src/gen/visit_mut.rs
@@ -271,9 +271,9 @@
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn visit_member_mut(&mut self, i: &mut Member) { visit_member_mut(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item_mut(&mut self, i: &mut MetaItem) { visit_meta_item_mut(self, i) }
+fn visit_meta_mut(&mut self, i: &mut Meta) { visit_meta_mut(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_meta_item_list_mut(&mut self, i: &mut MetaItemList) { visit_meta_item_list_mut(self, i) }
+fn visit_meta_list_mut(&mut self, i: &mut MetaList) { visit_meta_list_mut(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn visit_meta_name_value_mut(&mut self, i: &mut MetaNameValue) { visit_meta_name_value_mut(self, i) }
# [ cfg ( feature = "full" ) ]
@@ -281,7 +281,7 @@
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
fn visit_method_turbofish_mut(&mut self, i: &mut MethodTurbofish) { visit_method_turbofish_mut(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-fn visit_nested_meta_item_mut(&mut self, i: &mut NestedMetaItem) { visit_nested_meta_item_mut(self, i) }
+fn visit_nested_meta_mut(&mut self, i: &mut NestedMeta) { visit_nested_meta_mut(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
fn visit_parenthesized_generic_arguments_mut(&mut self, i: &mut ParenthesizedGenericArguments) { visit_parenthesized_generic_arguments_mut(self, i) }
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ] # [ cfg ( feature = "full" ) ]
@@ -1667,24 +1667,24 @@
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaItem) {
+pub fn visit_meta_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut Meta) {
match *_i {
- MetaItem::Term(ref mut _binding_0, ) => {
+ Meta::Word(ref mut _binding_0, ) => {
_visitor.visit_ident_mut(_binding_0);
}
- MetaItem::List(ref mut _binding_0, ) => {
- _visitor.visit_meta_item_list_mut(_binding_0);
+ Meta::List(ref mut _binding_0, ) => {
+ _visitor.visit_meta_list_mut(_binding_0);
}
- MetaItem::NameValue(ref mut _binding_0, ) => {
+ Meta::NameValue(ref mut _binding_0, ) => {
_visitor.visit_meta_name_value_mut(_binding_0);
}
}
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_meta_item_list_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaItemList) {
+pub fn visit_meta_list_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaList) {
_visitor.visit_ident_mut(& mut _i . ident);
tokens_helper(_visitor, &mut (& mut _i . paren_token).0);
- for mut el in Punctuated::pairs_mut(& mut _i . nested) { let it = el.value_mut(); _visitor.visit_nested_meta_item_mut(it) };
+ for mut el in Punctuated::pairs_mut(& mut _i . nested) { let it = el.value_mut(); _visitor.visit_nested_meta_mut(it) };
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
pub fn visit_meta_name_value_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut MetaNameValue) {
@@ -1708,12 +1708,12 @@
tokens_helper(_visitor, &mut (& mut _i . gt_token).0);
}
# [ cfg ( any ( feature = "full" , feature = "derive" ) ) ]
-pub fn visit_nested_meta_item_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut NestedMetaItem) {
+pub fn visit_nested_meta_mut<V: VisitMut + ?Sized>(_visitor: &mut V, _i: &mut NestedMeta) {
match *_i {
- NestedMetaItem::MetaItem(ref mut _binding_0, ) => {
- _visitor.visit_meta_item_mut(_binding_0);
+ NestedMeta::Meta(ref mut _binding_0, ) => {
+ _visitor.visit_meta_mut(_binding_0);
}
- NestedMetaItem::Literal(ref mut _binding_0, ) => {
+ NestedMeta::Literal(ref mut _binding_0, ) => {
_visitor.visit_lit_mut(_binding_0);
}
}
diff --git a/src/lib.rs b/src/lib.rs
index b2075a5..948dd3e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -281,7 +281,7 @@
#[cfg(any(feature = "full", feature = "derive"))]
mod attr;
#[cfg(any(feature = "full", feature = "derive"))]
-pub use attr::{AttrStyle, Attribute, MetaItem, MetaItemList, MetaNameValue, NestedMetaItem};
+pub use attr::{AttrStyle, Attribute, Meta, MetaList, MetaNameValue, NestedMeta};
#[cfg(any(feature = "full", feature = "derive"))]
mod data;