sway_ast/item/
item_configurable.rs

1use crate::priv_prelude::*;
2
3#[derive(Clone, Debug, Serialize)]
4pub struct ItemConfigurable {
5    pub configurable_token: ConfigurableToken,
6    pub fields: Braces<Punctuated<Annotated<ConfigurableField>, CommaToken>>,
7}
8
9impl Spanned for ItemConfigurable {
10    fn span(&self) -> Span {
11        Span::join(self.configurable_token.span(), &self.fields.span())
12    }
13}
14
15#[derive(Clone, Debug, Serialize)]
16pub struct ConfigurableField {
17    pub name: Ident,
18    pub colon_token: ColonToken,
19    pub ty: Ty,
20    pub eq_token: EqToken,
21    pub initializer: Expr,
22}
23
24impl Spanned for ConfigurableField {
25    fn span(&self) -> Span {
26        Span::join_all([
27            self.name.span(),
28            self.colon_token.span(),
29            self.ty.span(),
30            self.eq_token.span(),
31            self.initializer.span(),
32        ])
33    }
34}