use crate::ast::prelude::*;
#[test]
fn ast_parse() {
use crate::testing::rt;
rt::<ast::ItemConst>("const value = #{}");
}
#[derive(Debug, TryClone, PartialEq, Eq, Parse, ToTokens, Spanned, Opaque)]
#[rune(parse = "meta_only")]
#[non_exhaustive]
pub struct ItemConst {
#[rune(id)]
pub(crate) id: Id,
#[rune(iter, meta)]
pub attributes: Vec<ast::Attribute>,
#[rune(option, meta)]
pub visibility: ast::Visibility,
#[rune(meta)]
pub const_token: T![const],
pub name: ast::Ident,
pub eq: T![=],
pub expr: ast::Expr,
}
impl ItemConst {
pub(crate) fn descriptive_span(&self) -> Span {
self.const_token.span().join(self.name.span())
}
}
item_parse!(Const, ItemConst, "constant item");