sway_core/language/parsed/declaration/
configurable.rs1use 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}