use crate::name_analysis::symbol::source_definition::SourceDefinition; use std::fmt::{Debug, Formatter}; #[derive(Clone)] pub struct ClassMemberSymbol { declared_name: String, is_field: bool, source_definition: Option, } impl ClassMemberSymbol { pub fn new( declared_name: &str, is_field: bool, source_definition: Option, ) -> Self { Self { declared_name: declared_name.to_string(), is_field, source_definition, } } pub fn declared_name(&self) -> &str { &self.declared_name } pub fn is_field(&self) -> bool { self.is_field } pub fn source_definition(&self) -> Option<&SourceDefinition> { self.source_definition.as_ref() } } impl Debug for ClassMemberSymbol { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { f.debug_struct("ClassMemberSymbol") .field("declared_name", &self.declared_name) .field("is_field", &self.is_field) .field("source_definition", &self.source_definition) .finish() } }