sway_ast/item/
item_configurable.rs1use 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}