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 graph TD
Adapters[Adapters]
Application[Application] Application[Application]
Domain[Domain] Domain[Domain]
Presentation[Presentation] Presentation[Presentation]
Adapters[Adapters]
Adapters --> Domain
Application --> Domain
Presentation --> Application Presentation --> Application
Presentation --> Domain Application --> Domain
Presentation --> Adapters Presentation --> Adapters
Adapters --> Domain
Presentation --> Domain

View File

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

View File

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

View File

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

View File

@@ -1,45 +1,58 @@
classDiagram classDiagram
namespace Domain { namespace Domain {
class OutputConfig class OutputConfig
class DiagramLevel
class RenderOutput
class RenderedFile
class SourceFile
class ModuleName
class Language
class FilePath
class RelationshipKind
class Visibility
class CodeElementKind
class AnalysisConfig
class AnalysisResult
class AnalysisWarning
class Relationship
class CodeElement
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
class OutputWriter
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
class DomainError
}
OutputConfig : split_by_module: bool OutputConfig : split_by_module: bool
OutputConfig : output_path: Option OutputConfig : output_path: Option
OutputConfig : +with_split_by_module() OutputConfig : +with_split_by_module()
OutputConfig : +with_output_path() OutputConfig : +with_output_path()
OutputConfig : +split_by_module() OutputConfig : +split_by_module()
OutputConfig : +output_path() OutputConfig : +output_path()
class DiagramLevel
class RenderOutput
RenderOutput : files: Vec RenderOutput : files: Vec
RenderOutput : +new() RenderOutput : +new()
RenderOutput : +single() RenderOutput : +single()
RenderOutput : +files() RenderOutput : +files()
class RenderedFile
RenderedFile : name: String RenderedFile : name: String
RenderedFile : content: String RenderedFile : content: String
RenderedFile : +new() RenderedFile : +new()
RenderedFile : +name() RenderedFile : +name()
RenderedFile : +content() RenderedFile : +content()
class SourceFile
SourceFile : path: FilePath SourceFile : path: FilePath
SourceFile : language: Language SourceFile : language: Language
SourceFile : +new() SourceFile : +new()
SourceFile : +path() SourceFile : +path()
SourceFile : +language() SourceFile : +language()
class ModuleName
ModuleName : +new() ModuleName : +new()
ModuleName : +from_path() ModuleName : +from_path()
ModuleName : +from_directory_group() ModuleName : +from_directory_group()
ModuleName : +capitalize() ModuleName : +capitalize()
ModuleName : +as_str() ModuleName : +as_str()
class Language
Language : +name() Language : +name()
class FilePath
FilePath : +new() FilePath : +new()
FilePath : +as_str() FilePath : +as_str()
class RelationshipKind
class Visibility
class CodeElementKind
class AnalysisConfig
AnalysisConfig : excludes: Vec AnalysisConfig : excludes: Vec
AnalysisConfig : level: DiagramLevel AnalysisConfig : level: DiagramLevel
AnalysisConfig : module_mappings: HashMap AnalysisConfig : module_mappings: HashMap
@@ -52,7 +65,6 @@ classDiagram
AnalysisConfig : +with_scope() AnalysisConfig : +with_scope()
AnalysisConfig : +module_mappings() AnalysisConfig : +module_mappings()
AnalysisConfig : +scope() AnalysisConfig : +scope()
class AnalysisResult
AnalysisResult : elements: Vec AnalysisResult : elements: Vec
AnalysisResult : relationships: Vec AnalysisResult : relationships: Vec
AnalysisResult : warnings: Vec AnalysisResult : warnings: Vec
@@ -61,7 +73,6 @@ classDiagram
AnalysisResult : +elements() AnalysisResult : +elements()
AnalysisResult : +relationships() AnalysisResult : +relationships()
AnalysisResult : +warnings() AnalysisResult : +warnings()
class AnalysisWarning
AnalysisWarning : file_path: FilePath AnalysisWarning : file_path: FilePath
AnalysisWarning : line: usize AnalysisWarning : line: usize
AnalysisWarning : message: String AnalysisWarning : message: String
@@ -69,7 +80,6 @@ classDiagram
AnalysisWarning : +file_path() AnalysisWarning : +file_path()
AnalysisWarning : +line() AnalysisWarning : +line()
AnalysisWarning : +message() AnalysisWarning : +message()
class Relationship
Relationship : source: String Relationship : source: String
Relationship : target: String Relationship : target: String
Relationship : kind: RelationshipKind Relationship : kind: RelationshipKind
@@ -80,7 +90,6 @@ classDiagram
Relationship : +target() Relationship : +target()
Relationship : +kind() Relationship : +kind()
Relationship : +source_file() Relationship : +source_file()
class CodeElement
CodeElement : name: String CodeElement : name: String
CodeElement : kind: CodeElementKind CodeElement : kind: CodeElementKind
CodeElement : file_path: FilePath CodeElement : file_path: FilePath
@@ -108,13 +117,6 @@ classDiagram
CodeElement : +with_methods() CodeElement : +with_methods()
CodeElement : +fields() CodeElement : +fields()
CodeElement : +methods() CodeElement : +methods()
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
class OutputWriter
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
CodeGraph : elements: Vec CodeGraph : elements: Vec
CodeGraph : relationships: Vec CodeGraph : relationships: Vec
CodeGraph : +new() CodeGraph : +new()
@@ -127,8 +129,6 @@ classDiagram
CodeGraph : +resolve_relationships() CodeGraph : +resolve_relationships()
CodeGraph : +filter_external_imports() CodeGraph : +filter_external_imports()
CodeGraph : +subgraph_by_module() CodeGraph : +subgraph_by_module()
class DomainError
}
SourceFile --> FilePath SourceFile --> FilePath
SourceFile --> Language SourceFile --> Language
AnalysisConfig --> DiagramLevel AnalysisConfig --> DiagramLevel

View File

@@ -1,114 +1,92 @@
classDiagram classDiagram
namespace Domain {
class OutputConfig
class DiagramLevel
class RenderOutput
class RenderedFile
class SourceFile
class ModuleName
class Language
class FilePath
class RelationshipKind
class Visibility
class CodeElementKind
class AnalysisConfig
class AnalysisResult
class AnalysisWarning
class Relationship
class CodeElement
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
class OutputWriter
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
class DomainError
}
namespace Application {
class AnalyzeCodebase
class AnalyzeCodebaseResult
class FakeFileDiscovery
class FakeOutputWriter
class FakeDiagramRenderer
class FakeResponse
class FakeSourceAnalyzer
}
namespace Adapters { namespace Adapters {
class MermaidRenderer 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 class AsciiRenderer
AsciiRenderer : +new()
AsciiRenderer : -format_kind()
class WalkdirDiscovery class WalkdirDiscovery
WalkdirDiscovery : +new()
WalkdirDiscovery : -detect_language()
WalkdirDiscovery : -is_excluded()
class TreeSitterAnalyzer class TreeSitterAnalyzer
TreeSitterAnalyzer : rust: RustExtractor
TreeSitterAnalyzer : python: PythonExtractor
TreeSitterAnalyzer : +new()
TreeSitterAnalyzer : -extractor_for()
class LanguageExtractor class LanguageExtractor
class RustExtractor class RustExtractor
class PythonExtractor class PythonExtractor
class FileOutputWriter class FileOutputWriter
FileOutputWriter : output_path: OutputPath
FileOutputWriter : +new()
FileOutputWriter : +single_file()
class OutputPath class OutputPath
<<private>> OutputPath
class StdoutOutputWriter class StdoutOutputWriter
StdoutOutputWriter : +new()
class RawConfig class RawConfig
<<private>> RawConfig
RawConfig : analysis: RawAnalysis
RawConfig : output: RawOutput
RawConfig : modules: HashMap
class RawAnalysis class RawAnalysis
<<private>> RawAnalysis
RawAnalysis : exclude: Vec
RawAnalysis : level: Option
class RawOutput class RawOutput
<<private>> RawOutput
RawOutput : format: Option
RawOutput : path: Option
RawOutput : split_by_module: bool
class TomlConfigLoader class TomlConfigLoader
TomlConfigLoader : raw: RawConfig
TomlConfigLoader : +from_path()
TomlConfigLoader : -parse_level()
class CargoWorkspaceAnalyzer class CargoWorkspaceAnalyzer
CargoWorkspaceAnalyzer : +new()
class WorkspaceToml class WorkspaceToml
<<private>> WorkspaceToml
WorkspaceToml : workspace: Option
class WorkspaceSection class WorkspaceSection
<<private>> WorkspaceSection
WorkspaceSection : members: Vec
class MemberToml class MemberToml
<<private>> MemberToml
MemberToml : package: Option
MemberToml : dependencies: HashMap
class PackageSection class PackageSection
<<private>> PackageSection
PackageSection : name: String
} }
namespace Domain { namespace Presentation {
class OutputConfig class Cli
class Command
}
OutputConfig : split_by_module: bool OutputConfig : split_by_module: bool
OutputConfig : output_path: Option OutputConfig : output_path: Option
OutputConfig : +with_split_by_module() OutputConfig : +with_split_by_module()
OutputConfig : +with_output_path() OutputConfig : +with_output_path()
OutputConfig : +split_by_module() OutputConfig : +split_by_module()
OutputConfig : +output_path() OutputConfig : +output_path()
class DiagramLevel
class RenderOutput
RenderOutput : files: Vec RenderOutput : files: Vec
RenderOutput : +new() RenderOutput : +new()
RenderOutput : +single() RenderOutput : +single()
RenderOutput : +files() RenderOutput : +files()
class RenderedFile
RenderedFile : name: String RenderedFile : name: String
RenderedFile : content: String RenderedFile : content: String
RenderedFile : +new() RenderedFile : +new()
RenderedFile : +name() RenderedFile : +name()
RenderedFile : +content() RenderedFile : +content()
class SourceFile
SourceFile : path: FilePath SourceFile : path: FilePath
SourceFile : language: Language SourceFile : language: Language
SourceFile : +new() SourceFile : +new()
SourceFile : +path() SourceFile : +path()
SourceFile : +language() SourceFile : +language()
class ModuleName
ModuleName : +new() ModuleName : +new()
ModuleName : +from_path() ModuleName : +from_path()
ModuleName : +from_directory_group() ModuleName : +from_directory_group()
ModuleName : +capitalize() ModuleName : +capitalize()
ModuleName : +as_str() ModuleName : +as_str()
class Language
Language : +name() Language : +name()
class FilePath
FilePath : +new() FilePath : +new()
FilePath : +as_str() FilePath : +as_str()
class RelationshipKind
class Visibility
class CodeElementKind
class AnalysisConfig
AnalysisConfig : excludes: Vec AnalysisConfig : excludes: Vec
AnalysisConfig : level: DiagramLevel AnalysisConfig : level: DiagramLevel
AnalysisConfig : module_mappings: HashMap AnalysisConfig : module_mappings: HashMap
@@ -121,7 +99,6 @@ classDiagram
AnalysisConfig : +with_scope() AnalysisConfig : +with_scope()
AnalysisConfig : +module_mappings() AnalysisConfig : +module_mappings()
AnalysisConfig : +scope() AnalysisConfig : +scope()
class AnalysisResult
AnalysisResult : elements: Vec AnalysisResult : elements: Vec
AnalysisResult : relationships: Vec AnalysisResult : relationships: Vec
AnalysisResult : warnings: Vec AnalysisResult : warnings: Vec
@@ -130,7 +107,6 @@ classDiagram
AnalysisResult : +elements() AnalysisResult : +elements()
AnalysisResult : +relationships() AnalysisResult : +relationships()
AnalysisResult : +warnings() AnalysisResult : +warnings()
class AnalysisWarning
AnalysisWarning : file_path: FilePath AnalysisWarning : file_path: FilePath
AnalysisWarning : line: usize AnalysisWarning : line: usize
AnalysisWarning : message: String AnalysisWarning : message: String
@@ -138,7 +114,6 @@ classDiagram
AnalysisWarning : +file_path() AnalysisWarning : +file_path()
AnalysisWarning : +line() AnalysisWarning : +line()
AnalysisWarning : +message() AnalysisWarning : +message()
class Relationship
Relationship : source: String Relationship : source: String
Relationship : target: String Relationship : target: String
Relationship : kind: RelationshipKind Relationship : kind: RelationshipKind
@@ -149,7 +124,6 @@ classDiagram
Relationship : +target() Relationship : +target()
Relationship : +kind() Relationship : +kind()
Relationship : +source_file() Relationship : +source_file()
class CodeElement
CodeElement : name: String CodeElement : name: String
CodeElement : kind: CodeElementKind CodeElement : kind: CodeElementKind
CodeElement : file_path: FilePath CodeElement : file_path: FilePath
@@ -177,13 +151,6 @@ classDiagram
CodeElement : +with_methods() CodeElement : +with_methods()
CodeElement : +fields() CodeElement : +fields()
CodeElement : +methods() CodeElement : +methods()
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
class OutputWriter
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
CodeGraph : elements: Vec CodeGraph : elements: Vec
CodeGraph : relationships: Vec CodeGraph : relationships: Vec
CodeGraph : +new() CodeGraph : +new()
@@ -196,39 +163,74 @@ classDiagram
CodeGraph : +resolve_relationships() CodeGraph : +resolve_relationships()
CodeGraph : +filter_external_imports() CodeGraph : +filter_external_imports()
CodeGraph : +subgraph_by_module() CodeGraph : +subgraph_by_module()
class DomainError
}
namespace Application {
class AnalyzeCodebase
AnalyzeCodebase : file_discovery: F AnalyzeCodebase : file_discovery: F
AnalyzeCodebase : source_analyzer: S AnalyzeCodebase : source_analyzer: S
AnalyzeCodebase : +new() AnalyzeCodebase : +new()
AnalyzeCodebase : +execute() AnalyzeCodebase : +execute()
class AnalyzeCodebaseResult
AnalyzeCodebaseResult : graph: CodeGraph AnalyzeCodebaseResult : graph: CodeGraph
AnalyzeCodebaseResult : warnings: Vec AnalyzeCodebaseResult : warnings: Vec
AnalyzeCodebaseResult : +graph() AnalyzeCodebaseResult : +graph()
AnalyzeCodebaseResult : +warnings() AnalyzeCodebaseResult : +warnings()
class FakeFileDiscovery
FakeFileDiscovery : files: Vec FakeFileDiscovery : files: Vec
FakeFileDiscovery : +new() FakeFileDiscovery : +new()
FakeFileDiscovery : +empty() FakeFileDiscovery : +empty()
class FakeOutputWriter
FakeOutputWriter : written: RefCell FakeOutputWriter : written: RefCell
FakeOutputWriter : +new() FakeOutputWriter : +new()
FakeOutputWriter : +written_outputs() FakeOutputWriter : +written_outputs()
class FakeDiagramRenderer
FakeDiagramRenderer : +new() FakeDiagramRenderer : +new()
class FakeResponse
<<private>> FakeResponse <<private>> FakeResponse
class FakeSourceAnalyzer
FakeSourceAnalyzer : results: HashMap FakeSourceAnalyzer : results: HashMap
FakeSourceAnalyzer : +new() FakeSourceAnalyzer : +new()
FakeSourceAnalyzer : +with_result() FakeSourceAnalyzer : +with_result()
FakeSourceAnalyzer : +with_error() FakeSourceAnalyzer : +with_error()
} MermaidRenderer : level: DiagramLevel
namespace Presentation { MermaidRenderer : +new()
class Cli 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 : command: Option
Cli : path: PathBuf Cli : path: PathBuf
Cli : level: String Cli : level: String
@@ -241,8 +243,6 @@ classDiagram
Cli : strict: bool Cli : strict: bool
Cli : check: bool Cli : check: bool
Cli : verbose: u8 Cli : verbose: u8
class Command
}
SourceFile --> FilePath SourceFile --> FilePath
SourceFile --> Language SourceFile --> Language
AnalysisConfig --> DiagramLevel AnalysisConfig --> DiagramLevel

View File

@@ -1,6 +1,8 @@
classDiagram classDiagram
namespace Presentation { namespace Presentation {
class Cli class Cli
class Command
}
Cli : command: Option Cli : command: Option
Cli : path: PathBuf Cli : path: PathBuf
Cli : level: String Cli : level: String
@@ -13,5 +15,3 @@ classDiagram
Cli : strict: bool Cli : strict: bool
Cli : check: bool Cli : check: bool
Cli : verbose: u8 Cli : verbose: u8
class Command
}