Skip to main content

xwrapup_parser/ds_node/
ds_widget.rs

1use 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}