use crate::name_analysis::symbol::source_definition::SourceDefinition; use std::fmt::{Debug, Formatter}; #[derive(Clone)] pub struct ClassMemberSymbol { is_public: bool, is_mut: bool, declared_name: String, source_definition: Option, } impl ClassMemberSymbol { pub fn new( is_public: bool, is_mut: bool, declared_name: &str, source_definition: Option, ) -> Self { Self { is_public, is_mut, declared_name: declared_name.to_string(), source_definition, } } pub fn is_public(&self) -> bool { self.is_public } pub fn is_mut(&self) -> bool { self.is_mut } pub fn declared_name(&self) -> &str { &self.declared_name } 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("is_public", &self.is_public) .field("is_mut", &self.is_mut) .field("declared_name", &self.declared_name) .field("source_definition", &self.source_definition) .finish() } }