solidity_language_server/solc_ast/
variables.rs1use serde::{Deserialize, Serialize};
4
5use super::{
6 Documentation, Expression, Mutability, NodeID, OverrideSpecifier, StorageLocation,
7 TypeDescriptions, TypeName, Visibility,
8};
9
10#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
15#[serde(rename_all = "camelCase")]
16pub struct VariableDeclaration {
17 pub id: NodeID,
18 pub src: String,
19 pub name: String,
20 #[serde(default)]
21 pub name_location: Option<String>,
22 #[serde(default)]
23 pub type_name: Option<TypeName>,
24 #[serde(default)]
25 pub constant: Option<bool>,
26 #[serde(default)]
27 pub mutability: Option<Mutability>,
28 #[serde(default)]
29 pub state_variable: Option<bool>,
30 #[serde(default)]
31 pub storage_location: Option<StorageLocation>,
32 #[serde(default)]
33 pub visibility: Option<Visibility>,
34 #[serde(default)]
36 pub value: Option<Expression>,
37 #[serde(default)]
39 pub indexed: Option<bool>,
40 #[serde(default)]
41 pub scope: Option<NodeID>,
42 #[serde(default)]
43 pub type_descriptions: TypeDescriptions,
44 #[serde(default)]
46 pub overrides: Option<OverrideSpecifier>,
47 #[serde(default)]
49 pub function_selector: Option<String>,
50 #[serde(default)]
52 pub base_functions: Option<Vec<NodeID>>,
53 #[serde(default)]
55 pub documentation: Option<Documentation>,
56}