xwrapup_parser/ds_node/
ds_widget.rs1use super::ds_attr::DsAttrs;
2use super::ds_traits::DsNodeIsMe;
3use crate::ds_node::ds_custom_token::is_custom_keyword;
4use syn::parse::{Parse, ParseStream};
5
6#[derive(Debug)]
7pub struct DsWidget {
8 name: syn::Ident,
9 attrs: DsAttrs,
10}
11
12impl DsWidget {
13 pub fn get_name(&self) -> &syn::Ident {
14 &self.name
15 }
16
17 pub fn get_attrs(&self) -> &DsAttrs {
18 &self.attrs
19 }
20}
21
22impl Parse for DsWidget {
23 fn parse(input: ParseStream) -> syn::Result<Self> {
24 let name = input.parse::<syn::Ident>()?;
25 let attrs = input.parse::<DsAttrs>()?;
26 Ok(DsWidget { name, attrs })
27 }
28}
29
30impl DsNodeIsMe for DsWidget {
31 fn is_me(input: ParseStream) -> bool {
32 input.peek(syn::Ident) && !is_custom_keyword(input)
33 }
34}