docs: update architecture diagrams

This commit is contained in:
Archlens Bot
2026-06-16 14:56:03 +00:00
parent 4f6fa6feff
commit 27197062eb
7 changed files with 400 additions and 400 deletions

View File

@@ -1,10 +1,10 @@
graph TD
Adapters[Adapters]
Application[Application]
Domain[Domain]
Presentation[Presentation]
Adapters[Adapters]
Adapters --> Domain
Application --> Domain
Presentation --> Application
Presentation --> Domain
Presentation --> Adapters
Application --> Domain
Presentation --> Adapters
Adapters --> Domain
Presentation --> Domain

View File

@@ -13,16 +13,16 @@ graph TD
archlens_cargo_workspace[archlens-cargo-workspace]
end
archlens_application --> archlens_domain
archlens --> archlens_toml_config
archlens --> archlens_cargo_workspace
archlens --> archlens_walkdir
archlens --> archlens_ascii
archlens --> archlens_domain
archlens --> archlens_application
archlens --> archlens_domain
archlens --> archlens_tree_sitter
archlens --> archlens_mermaid
archlens --> archlens_file_writer
archlens --> archlens_stdout_writer
archlens --> archlens_walkdir
archlens --> archlens_mermaid
archlens --> archlens_toml_config
archlens_tree_sitter --> archlens_domain
archlens_walkdir --> archlens_domain
archlens_mermaid --> archlens_domain

View File

@@ -1,73 +1,73 @@
classDiagram
namespace Adapters {
class MermaidRenderer
MermaidRenderer : level: DiagramLevel
MermaidRenderer : +new()
MermaidRenderer : +with_level()
MermaidRenderer : -format_element_name()
MermaidRenderer : -format_visibility()
MermaidRenderer : -render_class_diagram()
MermaidRenderer : -push_class_lines()
MermaidRenderer : -render_module_flowchart()
MermaidRenderer : -render_project_flowchart()
MermaidRenderer : -sanitize_id()
class AsciiRenderer
AsciiRenderer : +new()
AsciiRenderer : -format_kind()
class WalkdirDiscovery
WalkdirDiscovery : +new()
WalkdirDiscovery : -detect_language()
WalkdirDiscovery : -is_excluded()
class TreeSitterAnalyzer
TreeSitterAnalyzer : rust: RustExtractor
TreeSitterAnalyzer : python: PythonExtractor
TreeSitterAnalyzer : +new()
TreeSitterAnalyzer : -extractor_for()
class LanguageExtractor
class RustExtractor
class PythonExtractor
class FileOutputWriter
FileOutputWriter : output_path: OutputPath
FileOutputWriter : +new()
FileOutputWriter : +single_file()
class OutputPath
<<private>> OutputPath
class StdoutOutputWriter
StdoutOutputWriter : +new()
class RawConfig
<<private>> RawConfig
RawConfig : analysis: RawAnalysis
RawConfig : output: RawOutput
RawConfig : modules: HashMap
class RawAnalysis
<<private>> RawAnalysis
RawAnalysis : exclude: Vec
RawAnalysis : level: Option
class RawOutput
<<private>> RawOutput
RawOutput : format: Option
RawOutput : path: Option
RawOutput : split_by_module: bool
class TomlConfigLoader
TomlConfigLoader : raw: RawConfig
TomlConfigLoader : +from_path()
TomlConfigLoader : -parse_level()
class CargoWorkspaceAnalyzer
CargoWorkspaceAnalyzer : +new()
class WorkspaceToml
<<private>> WorkspaceToml
WorkspaceToml : workspace: Option
class WorkspaceSection
<<private>> WorkspaceSection
WorkspaceSection : members: Vec
class MemberToml
<<private>> MemberToml
MemberToml : package: Option
MemberToml : dependencies: HashMap
class PackageSection
<<private>> PackageSection
PackageSection : name: String
}
MermaidRenderer : level: DiagramLevel
MermaidRenderer : +new()
MermaidRenderer : +with_level()
MermaidRenderer : -format_element_name()
MermaidRenderer : -format_visibility()
MermaidRenderer : -render_class_diagram()
MermaidRenderer : -push_class_lines()
MermaidRenderer : -render_module_flowchart()
MermaidRenderer : -render_project_flowchart()
MermaidRenderer : -sanitize_id()
AsciiRenderer : +new()
AsciiRenderer : -format_kind()
WalkdirDiscovery : +new()
WalkdirDiscovery : -detect_language()
WalkdirDiscovery : -is_excluded()
TreeSitterAnalyzer : rust: RustExtractor
TreeSitterAnalyzer : python: PythonExtractor
TreeSitterAnalyzer : +new()
TreeSitterAnalyzer : -extractor_for()
FileOutputWriter : output_path: OutputPath
FileOutputWriter : +new()
FileOutputWriter : +single_file()
<<private>> OutputPath
StdoutOutputWriter : +new()
<<private>> RawConfig
RawConfig : analysis: RawAnalysis
RawConfig : output: RawOutput
RawConfig : modules: HashMap
<<private>> RawAnalysis
RawAnalysis : exclude: Vec
RawAnalysis : level: Option
<<private>> RawOutput
RawOutput : format: Option
RawOutput : path: Option
RawOutput : split_by_module: bool
TomlConfigLoader : raw: RawConfig
TomlConfigLoader : +from_path()
TomlConfigLoader : -parse_level()
CargoWorkspaceAnalyzer : +new()
<<private>> WorkspaceToml
WorkspaceToml : workspace: Option
<<private>> WorkspaceSection
WorkspaceSection : members: Vec
<<private>> MemberToml
MemberToml : package: Option
MemberToml : dependencies: HashMap
<<private>> PackageSection
PackageSection : name: String
TreeSitterAnalyzer --> RustExtractor
TreeSitterAnalyzer --> PythonExtractor
RustExtractor <|-- LanguageExtractor

View File

@@ -1,30 +1,30 @@
classDiagram
namespace Application {
class AnalyzeCodebase
AnalyzeCodebase : file_discovery: F
AnalyzeCodebase : source_analyzer: S
AnalyzeCodebase : +new()
AnalyzeCodebase : +execute()
class AnalyzeCodebaseResult
AnalyzeCodebaseResult : graph: CodeGraph
AnalyzeCodebaseResult : warnings: Vec
AnalyzeCodebaseResult : +graph()
AnalyzeCodebaseResult : +warnings()
class FakeFileDiscovery
FakeFileDiscovery : files: Vec
FakeFileDiscovery : +new()
FakeFileDiscovery : +empty()
class FakeOutputWriter
FakeOutputWriter : written: RefCell
FakeOutputWriter : +new()
FakeOutputWriter : +written_outputs()
class FakeDiagramRenderer
FakeDiagramRenderer : +new()
class FakeResponse
<<private>> FakeResponse
class FakeSourceAnalyzer
FakeSourceAnalyzer : results: HashMap
FakeSourceAnalyzer : +new()
FakeSourceAnalyzer : +with_result()
FakeSourceAnalyzer : +with_error()
}
}
AnalyzeCodebase : file_discovery: F
AnalyzeCodebase : source_analyzer: S
AnalyzeCodebase : +new()
AnalyzeCodebase : +execute()
AnalyzeCodebaseResult : graph: CodeGraph
AnalyzeCodebaseResult : warnings: Vec
AnalyzeCodebaseResult : +graph()
AnalyzeCodebaseResult : +warnings()
FakeFileDiscovery : files: Vec
FakeFileDiscovery : +new()
FakeFileDiscovery : +empty()
FakeOutputWriter : written: RefCell
FakeOutputWriter : +new()
FakeOutputWriter : +written_outputs()
FakeDiagramRenderer : +new()
<<private>> FakeResponse
FakeSourceAnalyzer : results: HashMap
FakeSourceAnalyzer : +new()
FakeSourceAnalyzer : +with_result()
FakeSourceAnalyzer : +with_error()

View File

@@ -1,113 +1,21 @@
classDiagram
namespace Domain {
class OutputConfig
OutputConfig : split_by_module: bool
OutputConfig : output_path: Option
OutputConfig : +with_split_by_module()
OutputConfig : +with_output_path()
OutputConfig : +split_by_module()
OutputConfig : +output_path()
class DiagramLevel
class RenderOutput
RenderOutput : files: Vec
RenderOutput : +new()
RenderOutput : +single()
RenderOutput : +files()
class RenderedFile
RenderedFile : name: String
RenderedFile : content: String
RenderedFile : +new()
RenderedFile : +name()
RenderedFile : +content()
class SourceFile
SourceFile : path: FilePath
SourceFile : language: Language
SourceFile : +new()
SourceFile : +path()
SourceFile : +language()
class ModuleName
ModuleName : +new()
ModuleName : +from_path()
ModuleName : +from_directory_group()
ModuleName : +capitalize()
ModuleName : +as_str()
class Language
Language : +name()
class FilePath
FilePath : +new()
FilePath : +as_str()
class RelationshipKind
class Visibility
class CodeElementKind
class AnalysisConfig
AnalysisConfig : excludes: Vec
AnalysisConfig : level: DiagramLevel
AnalysisConfig : module_mappings: HashMap
AnalysisConfig : scope: Option
AnalysisConfig : +with_excludes()
AnalysisConfig : +with_level()
AnalysisConfig : +with_module_mappings()
AnalysisConfig : +excludes()
AnalysisConfig : +level()
AnalysisConfig : +with_scope()
AnalysisConfig : +module_mappings()
AnalysisConfig : +scope()
class AnalysisResult
AnalysisResult : elements: Vec
AnalysisResult : relationships: Vec
AnalysisResult : warnings: Vec
AnalysisResult : +new()
AnalysisResult : +empty()
AnalysisResult : +elements()
AnalysisResult : +relationships()
AnalysisResult : +warnings()
class AnalysisWarning
AnalysisWarning : file_path: FilePath
AnalysisWarning : line: usize
AnalysisWarning : message: String
AnalysisWarning : +new()
AnalysisWarning : +file_path()
AnalysisWarning : +line()
AnalysisWarning : +message()
class Relationship
Relationship : source: String
Relationship : target: String
Relationship : kind: RelationshipKind
Relationship : source_file: Option
Relationship : +new()
Relationship : +with_source_file()
Relationship : +source()
Relationship : +target()
Relationship : +kind()
Relationship : +source_file()
class CodeElement
CodeElement : name: String
CodeElement : kind: CodeElementKind
CodeElement : file_path: FilePath
CodeElement : line: usize
CodeElement : visibility: Visibility
CodeElement : module: Option
CodeElement : generics: Vec
CodeElement : attributes: Vec
CodeElement : fields: Vec
CodeElement : methods: Vec
CodeElement : +new()
CodeElement : +with_visibility()
CodeElement : +with_module()
CodeElement : +with_generics()
CodeElement : +with_attributes()
CodeElement : +name()
CodeElement : +kind()
CodeElement : +file_path()
CodeElement : +line()
CodeElement : +visibility()
CodeElement : +module()
CodeElement : +generics()
CodeElement : +attributes()
CodeElement : +with_fields()
CodeElement : +with_methods()
CodeElement : +fields()
CodeElement : +methods()
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
@@ -115,20 +23,112 @@ classDiagram
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
CodeGraph : elements: Vec
CodeGraph : relationships: Vec
CodeGraph : +new()
CodeGraph : +add_element()
CodeGraph : +add_relationship()
CodeGraph : +elements()
CodeGraph : +relationships()
CodeGraph : +modules()
CodeGraph : +elements_by_module()
CodeGraph : +resolve_relationships()
CodeGraph : +filter_external_imports()
CodeGraph : +subgraph_by_module()
class DomainError
}
OutputConfig : split_by_module: bool
OutputConfig : output_path: Option
OutputConfig : +with_split_by_module()
OutputConfig : +with_output_path()
OutputConfig : +split_by_module()
OutputConfig : +output_path()
RenderOutput : files: Vec
RenderOutput : +new()
RenderOutput : +single()
RenderOutput : +files()
RenderedFile : name: String
RenderedFile : content: String
RenderedFile : +new()
RenderedFile : +name()
RenderedFile : +content()
SourceFile : path: FilePath
SourceFile : language: Language
SourceFile : +new()
SourceFile : +path()
SourceFile : +language()
ModuleName : +new()
ModuleName : +from_path()
ModuleName : +from_directory_group()
ModuleName : +capitalize()
ModuleName : +as_str()
Language : +name()
FilePath : +new()
FilePath : +as_str()
AnalysisConfig : excludes: Vec
AnalysisConfig : level: DiagramLevel
AnalysisConfig : module_mappings: HashMap
AnalysisConfig : scope: Option
AnalysisConfig : +with_excludes()
AnalysisConfig : +with_level()
AnalysisConfig : +with_module_mappings()
AnalysisConfig : +excludes()
AnalysisConfig : +level()
AnalysisConfig : +with_scope()
AnalysisConfig : +module_mappings()
AnalysisConfig : +scope()
AnalysisResult : elements: Vec
AnalysisResult : relationships: Vec
AnalysisResult : warnings: Vec
AnalysisResult : +new()
AnalysisResult : +empty()
AnalysisResult : +elements()
AnalysisResult : +relationships()
AnalysisResult : +warnings()
AnalysisWarning : file_path: FilePath
AnalysisWarning : line: usize
AnalysisWarning : message: String
AnalysisWarning : +new()
AnalysisWarning : +file_path()
AnalysisWarning : +line()
AnalysisWarning : +message()
Relationship : source: String
Relationship : target: String
Relationship : kind: RelationshipKind
Relationship : source_file: Option
Relationship : +new()
Relationship : +with_source_file()
Relationship : +source()
Relationship : +target()
Relationship : +kind()
Relationship : +source_file()
CodeElement : name: String
CodeElement : kind: CodeElementKind
CodeElement : file_path: FilePath
CodeElement : line: usize
CodeElement : visibility: Visibility
CodeElement : module: Option
CodeElement : generics: Vec
CodeElement : attributes: Vec
CodeElement : fields: Vec
CodeElement : methods: Vec
CodeElement : +new()
CodeElement : +with_visibility()
CodeElement : +with_module()
CodeElement : +with_generics()
CodeElement : +with_attributes()
CodeElement : +name()
CodeElement : +kind()
CodeElement : +file_path()
CodeElement : +line()
CodeElement : +visibility()
CodeElement : +module()
CodeElement : +generics()
CodeElement : +attributes()
CodeElement : +with_fields()
CodeElement : +with_methods()
CodeElement : +fields()
CodeElement : +methods()
CodeGraph : elements: Vec
CodeGraph : relationships: Vec
CodeGraph : +new()
CodeGraph : +add_element()
CodeGraph : +add_relationship()
CodeGraph : +elements()
CodeGraph : +relationships()
CodeGraph : +modules()
CodeGraph : +elements_by_module()
CodeGraph : +resolve_relationships()
CodeGraph : +filter_external_imports()
CodeGraph : +subgraph_by_module()
SourceFile --> FilePath
SourceFile --> Language
AnalysisConfig --> DiagramLevel

View File

@@ -1,182 +1,21 @@
classDiagram
namespace Adapters {
class MermaidRenderer
MermaidRenderer : level: DiagramLevel
MermaidRenderer : +new()
MermaidRenderer : +with_level()
MermaidRenderer : -format_element_name()
MermaidRenderer : -format_visibility()
MermaidRenderer : -render_class_diagram()
MermaidRenderer : -push_class_lines()
MermaidRenderer : -render_module_flowchart()
MermaidRenderer : -render_project_flowchart()
MermaidRenderer : -sanitize_id()
class AsciiRenderer
AsciiRenderer : +new()
AsciiRenderer : -format_kind()
class WalkdirDiscovery
WalkdirDiscovery : +new()
WalkdirDiscovery : -detect_language()
WalkdirDiscovery : -is_excluded()
class TreeSitterAnalyzer
TreeSitterAnalyzer : rust: RustExtractor
TreeSitterAnalyzer : python: PythonExtractor
TreeSitterAnalyzer : +new()
TreeSitterAnalyzer : -extractor_for()
class LanguageExtractor
class RustExtractor
class PythonExtractor
class FileOutputWriter
FileOutputWriter : output_path: OutputPath
FileOutputWriter : +new()
FileOutputWriter : +single_file()
class OutputPath
<<private>> OutputPath
class StdoutOutputWriter
StdoutOutputWriter : +new()
class RawConfig
<<private>> RawConfig
RawConfig : analysis: RawAnalysis
RawConfig : output: RawOutput
RawConfig : modules: HashMap
class RawAnalysis
<<private>> RawAnalysis
RawAnalysis : exclude: Vec
RawAnalysis : level: Option
class RawOutput
<<private>> RawOutput
RawOutput : format: Option
RawOutput : path: Option
RawOutput : split_by_module: bool
class TomlConfigLoader
TomlConfigLoader : raw: RawConfig
TomlConfigLoader : +from_path()
TomlConfigLoader : -parse_level()
class CargoWorkspaceAnalyzer
CargoWorkspaceAnalyzer : +new()
class WorkspaceToml
<<private>> WorkspaceToml
WorkspaceToml : workspace: Option
class WorkspaceSection
<<private>> WorkspaceSection
WorkspaceSection : members: Vec
class MemberToml
<<private>> MemberToml
MemberToml : package: Option
MemberToml : dependencies: HashMap
class PackageSection
<<private>> PackageSection
PackageSection : name: String
}
namespace Domain {
class OutputConfig
OutputConfig : split_by_module: bool
OutputConfig : output_path: Option
OutputConfig : +with_split_by_module()
OutputConfig : +with_output_path()
OutputConfig : +split_by_module()
OutputConfig : +output_path()
class DiagramLevel
class RenderOutput
RenderOutput : files: Vec
RenderOutput : +new()
RenderOutput : +single()
RenderOutput : +files()
class RenderedFile
RenderedFile : name: String
RenderedFile : content: String
RenderedFile : +new()
RenderedFile : +name()
RenderedFile : +content()
class SourceFile
SourceFile : path: FilePath
SourceFile : language: Language
SourceFile : +new()
SourceFile : +path()
SourceFile : +language()
class ModuleName
ModuleName : +new()
ModuleName : +from_path()
ModuleName : +from_directory_group()
ModuleName : +capitalize()
ModuleName : +as_str()
class Language
Language : +name()
class FilePath
FilePath : +new()
FilePath : +as_str()
class RelationshipKind
class Visibility
class CodeElementKind
class AnalysisConfig
AnalysisConfig : excludes: Vec
AnalysisConfig : level: DiagramLevel
AnalysisConfig : module_mappings: HashMap
AnalysisConfig : scope: Option
AnalysisConfig : +with_excludes()
AnalysisConfig : +with_level()
AnalysisConfig : +with_module_mappings()
AnalysisConfig : +excludes()
AnalysisConfig : +level()
AnalysisConfig : +with_scope()
AnalysisConfig : +module_mappings()
AnalysisConfig : +scope()
class AnalysisResult
AnalysisResult : elements: Vec
AnalysisResult : relationships: Vec
AnalysisResult : warnings: Vec
AnalysisResult : +new()
AnalysisResult : +empty()
AnalysisResult : +elements()
AnalysisResult : +relationships()
AnalysisResult : +warnings()
class AnalysisWarning
AnalysisWarning : file_path: FilePath
AnalysisWarning : line: usize
AnalysisWarning : message: String
AnalysisWarning : +new()
AnalysisWarning : +file_path()
AnalysisWarning : +line()
AnalysisWarning : +message()
class Relationship
Relationship : source: String
Relationship : target: String
Relationship : kind: RelationshipKind
Relationship : source_file: Option
Relationship : +new()
Relationship : +with_source_file()
Relationship : +source()
Relationship : +target()
Relationship : +kind()
Relationship : +source_file()
class CodeElement
CodeElement : name: String
CodeElement : kind: CodeElementKind
CodeElement : file_path: FilePath
CodeElement : line: usize
CodeElement : visibility: Visibility
CodeElement : module: Option
CodeElement : generics: Vec
CodeElement : attributes: Vec
CodeElement : fields: Vec
CodeElement : methods: Vec
CodeElement : +new()
CodeElement : +with_visibility()
CodeElement : +with_module()
CodeElement : +with_generics()
CodeElement : +with_attributes()
CodeElement : +name()
CodeElement : +kind()
CodeElement : +file_path()
CodeElement : +line()
CodeElement : +visibility()
CodeElement : +module()
CodeElement : +generics()
CodeElement : +attributes()
CodeElement : +with_fields()
CodeElement : +with_methods()
CodeElement : +fields()
CodeElement : +methods()
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
@@ -184,65 +23,226 @@ classDiagram
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
CodeGraph : elements: Vec
CodeGraph : relationships: Vec
CodeGraph : +new()
CodeGraph : +add_element()
CodeGraph : +add_relationship()
CodeGraph : +elements()
CodeGraph : +relationships()
CodeGraph : +modules()
CodeGraph : +elements_by_module()
CodeGraph : +resolve_relationships()
CodeGraph : +filter_external_imports()
CodeGraph : +subgraph_by_module()
class DomainError
}
namespace Application {
class AnalyzeCodebase
AnalyzeCodebase : file_discovery: F
AnalyzeCodebase : source_analyzer: S
AnalyzeCodebase : +new()
AnalyzeCodebase : +execute()
class AnalyzeCodebaseResult
AnalyzeCodebaseResult : graph: CodeGraph
AnalyzeCodebaseResult : warnings: Vec
AnalyzeCodebaseResult : +graph()
AnalyzeCodebaseResult : +warnings()
class FakeFileDiscovery
FakeFileDiscovery : files: Vec
FakeFileDiscovery : +new()
FakeFileDiscovery : +empty()
class FakeOutputWriter
FakeOutputWriter : written: RefCell
FakeOutputWriter : +new()
FakeOutputWriter : +written_outputs()
class FakeDiagramRenderer
FakeDiagramRenderer : +new()
class FakeResponse
<<private>> FakeResponse
class FakeSourceAnalyzer
FakeSourceAnalyzer : results: HashMap
FakeSourceAnalyzer : +new()
FakeSourceAnalyzer : +with_result()
FakeSourceAnalyzer : +with_error()
}
namespace Adapters {
class MermaidRenderer
class AsciiRenderer
class WalkdirDiscovery
class TreeSitterAnalyzer
class LanguageExtractor
class RustExtractor
class PythonExtractor
class FileOutputWriter
class OutputPath
class StdoutOutputWriter
class RawConfig
class RawAnalysis
class RawOutput
class TomlConfigLoader
class CargoWorkspaceAnalyzer
class WorkspaceToml
class WorkspaceSection
class MemberToml
class PackageSection
}
namespace Presentation {
class Cli
Cli : command: Option
Cli : path: PathBuf
Cli : level: String
Cli : format: String
Cli : output: Option
Cli : config: Option
Cli : scope: Option
Cli : exclude: Vec
Cli : split_by_module: bool
Cli : strict: bool
Cli : check: bool
Cli : verbose: u8
class Command
}
OutputConfig : split_by_module: bool
OutputConfig : output_path: Option
OutputConfig : +with_split_by_module()
OutputConfig : +with_output_path()
OutputConfig : +split_by_module()
OutputConfig : +output_path()
RenderOutput : files: Vec
RenderOutput : +new()
RenderOutput : +single()
RenderOutput : +files()
RenderedFile : name: String
RenderedFile : content: String
RenderedFile : +new()
RenderedFile : +name()
RenderedFile : +content()
SourceFile : path: FilePath
SourceFile : language: Language
SourceFile : +new()
SourceFile : +path()
SourceFile : +language()
ModuleName : +new()
ModuleName : +from_path()
ModuleName : +from_directory_group()
ModuleName : +capitalize()
ModuleName : +as_str()
Language : +name()
FilePath : +new()
FilePath : +as_str()
AnalysisConfig : excludes: Vec
AnalysisConfig : level: DiagramLevel
AnalysisConfig : module_mappings: HashMap
AnalysisConfig : scope: Option
AnalysisConfig : +with_excludes()
AnalysisConfig : +with_level()
AnalysisConfig : +with_module_mappings()
AnalysisConfig : +excludes()
AnalysisConfig : +level()
AnalysisConfig : +with_scope()
AnalysisConfig : +module_mappings()
AnalysisConfig : +scope()
AnalysisResult : elements: Vec
AnalysisResult : relationships: Vec
AnalysisResult : warnings: Vec
AnalysisResult : +new()
AnalysisResult : +empty()
AnalysisResult : +elements()
AnalysisResult : +relationships()
AnalysisResult : +warnings()
AnalysisWarning : file_path: FilePath
AnalysisWarning : line: usize
AnalysisWarning : message: String
AnalysisWarning : +new()
AnalysisWarning : +file_path()
AnalysisWarning : +line()
AnalysisWarning : +message()
Relationship : source: String
Relationship : target: String
Relationship : kind: RelationshipKind
Relationship : source_file: Option
Relationship : +new()
Relationship : +with_source_file()
Relationship : +source()
Relationship : +target()
Relationship : +kind()
Relationship : +source_file()
CodeElement : name: String
CodeElement : kind: CodeElementKind
CodeElement : file_path: FilePath
CodeElement : line: usize
CodeElement : visibility: Visibility
CodeElement : module: Option
CodeElement : generics: Vec
CodeElement : attributes: Vec
CodeElement : fields: Vec
CodeElement : methods: Vec
CodeElement : +new()
CodeElement : +with_visibility()
CodeElement : +with_module()
CodeElement : +with_generics()
CodeElement : +with_attributes()
CodeElement : +name()
CodeElement : +kind()
CodeElement : +file_path()
CodeElement : +line()
CodeElement : +visibility()
CodeElement : +module()
CodeElement : +generics()
CodeElement : +attributes()
CodeElement : +with_fields()
CodeElement : +with_methods()
CodeElement : +fields()
CodeElement : +methods()
CodeGraph : elements: Vec
CodeGraph : relationships: Vec
CodeGraph : +new()
CodeGraph : +add_element()
CodeGraph : +add_relationship()
CodeGraph : +elements()
CodeGraph : +relationships()
CodeGraph : +modules()
CodeGraph : +elements_by_module()
CodeGraph : +resolve_relationships()
CodeGraph : +filter_external_imports()
CodeGraph : +subgraph_by_module()
AnalyzeCodebase : file_discovery: F
AnalyzeCodebase : source_analyzer: S
AnalyzeCodebase : +new()
AnalyzeCodebase : +execute()
AnalyzeCodebaseResult : graph: CodeGraph
AnalyzeCodebaseResult : warnings: Vec
AnalyzeCodebaseResult : +graph()
AnalyzeCodebaseResult : +warnings()
FakeFileDiscovery : files: Vec
FakeFileDiscovery : +new()
FakeFileDiscovery : +empty()
FakeOutputWriter : written: RefCell
FakeOutputWriter : +new()
FakeOutputWriter : +written_outputs()
FakeDiagramRenderer : +new()
<<private>> FakeResponse
FakeSourceAnalyzer : results: HashMap
FakeSourceAnalyzer : +new()
FakeSourceAnalyzer : +with_result()
FakeSourceAnalyzer : +with_error()
MermaidRenderer : level: DiagramLevel
MermaidRenderer : +new()
MermaidRenderer : +with_level()
MermaidRenderer : -format_element_name()
MermaidRenderer : -format_visibility()
MermaidRenderer : -render_class_diagram()
MermaidRenderer : -push_class_lines()
MermaidRenderer : -render_module_flowchart()
MermaidRenderer : -render_project_flowchart()
MermaidRenderer : -sanitize_id()
AsciiRenderer : +new()
AsciiRenderer : -format_kind()
WalkdirDiscovery : +new()
WalkdirDiscovery : -detect_language()
WalkdirDiscovery : -is_excluded()
TreeSitterAnalyzer : rust: RustExtractor
TreeSitterAnalyzer : python: PythonExtractor
TreeSitterAnalyzer : +new()
TreeSitterAnalyzer : -extractor_for()
FileOutputWriter : output_path: OutputPath
FileOutputWriter : +new()
FileOutputWriter : +single_file()
<<private>> OutputPath
StdoutOutputWriter : +new()
<<private>> RawConfig
RawConfig : analysis: RawAnalysis
RawConfig : output: RawOutput
RawConfig : modules: HashMap
<<private>> RawAnalysis
RawAnalysis : exclude: Vec
RawAnalysis : level: Option
<<private>> RawOutput
RawOutput : format: Option
RawOutput : path: Option
RawOutput : split_by_module: bool
TomlConfigLoader : raw: RawConfig
TomlConfigLoader : +from_path()
TomlConfigLoader : -parse_level()
CargoWorkspaceAnalyzer : +new()
<<private>> WorkspaceToml
WorkspaceToml : workspace: Option
<<private>> WorkspaceSection
WorkspaceSection : members: Vec
<<private>> MemberToml
MemberToml : package: Option
MemberToml : dependencies: HashMap
<<private>> PackageSection
PackageSection : name: String
Cli : command: Option
Cli : path: PathBuf
Cli : level: String
Cli : format: String
Cli : output: Option
Cli : config: Option
Cli : scope: Option
Cli : exclude: Vec
Cli : split_by_module: bool
Cli : strict: bool
Cli : check: bool
Cli : verbose: u8
SourceFile --> FilePath
SourceFile --> Language
AnalysisConfig --> DiagramLevel

View File

@@ -1,17 +1,17 @@
classDiagram
namespace Presentation {
class Cli
Cli : command: Option
Cli : path: PathBuf
Cli : level: String
Cli : format: String
Cli : output: Option
Cli : config: Option
Cli : scope: Option
Cli : exclude: Vec
Cli : split_by_module: bool
Cli : strict: bool
Cli : check: bool
Cli : verbose: u8
class Command
}
}
Cli : command: Option
Cli : path: PathBuf
Cli : level: String
Cli : format: String
Cli : output: Option
Cli : config: Option
Cli : scope: Option
Cli : exclude: Vec
Cli : split_by_module: bool
Cli : strict: bool
Cli : check: bool
Cli : verbose: u8