sway_core/language/parsed/declaration/
configurable.rs

1use crate::{
2    engine_threading::DebugWithEngines,
3    language::{parsed::Expression, Visibility},
4    transform, Engines, GenericArgument,
5};
6use sway_types::{Ident, Named, Span, Spanned};
7
8#[derive(Debug, Clone)]
9pub struct ConfigurableDeclaration {
10    pub name: Ident,
11    pub attributes: transform::Attributes,
12    pub type_ascription: GenericArgument,
13    pub value: Option<Expression>,
14    pub visibility: Visibility,
15    pub span: Span,
16    pub block_keyword_span: Span,
17}
18
19impl Named for ConfigurableDeclaration {
20    fn name(&self) -> &sway_types::BaseIdent {
21        &self.name
22    }
23}
24
25impl Spanned for ConfigurableDeclaration {
26    fn span(&self) -> sway_types::Span {
27        self.span.clone()
28    }
29}
30
31impl DebugWithEngines for ConfigurableDeclaration {
32    fn fmt(&self, f: &mut std::fmt::Formatter<'_>, _engines: &Engines) -> std::fmt::Result {
33        f.write_fmt(format_args!("{}", self.name))
34    }
35}