docs: update architecture diagrams
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
graph TD
|
graph TD
|
||||||
Adapters[Adapters]
|
|
||||||
Presentation[Presentation]
|
|
||||||
Domain[Domain]
|
|
||||||
Application[Application]
|
Application[Application]
|
||||||
Application -->|2 deps| Domain
|
Domain[Domain]
|
||||||
Presentation -->|1 dep| Domain
|
Presentation[Presentation]
|
||||||
Presentation -->|11 deps| Adapters
|
Adapters[Adapters]
|
||||||
Presentation -->|1 dep| Application
|
Presentation -->|1 dep| Application
|
||||||
|
Presentation -->|11 deps| Adapters
|
||||||
Adapters -->|24 deps| Domain
|
Adapters -->|24 deps| Domain
|
||||||
|
Presentation -->|1 dep| Domain
|
||||||
|
Application -->|2 deps| Domain
|
||||||
@@ -16,19 +16,19 @@ graph TD
|
|||||||
archlens_html[archlens-html]
|
archlens_html[archlens-html]
|
||||||
end
|
end
|
||||||
archlens_application --> archlens_domain
|
archlens_application --> archlens_domain
|
||||||
|
archlens --> archlens_application
|
||||||
|
archlens --> archlens_toml_config
|
||||||
|
archlens --> archlens_domain
|
||||||
|
archlens --> archlens_file_writer
|
||||||
|
archlens --> archlens_tree_sitter
|
||||||
|
archlens --> archlens_cargo_workspace
|
||||||
|
archlens --> archlens_mermaid
|
||||||
archlens --> archlens_stdout_writer
|
archlens --> archlens_stdout_writer
|
||||||
archlens --> archlens_ascii
|
archlens --> archlens_ascii
|
||||||
archlens --> archlens_application
|
|
||||||
archlens --> archlens_html
|
|
||||||
archlens --> archlens_domain
|
|
||||||
archlens --> archlens_tree_sitter
|
|
||||||
archlens --> archlens_toml_config
|
|
||||||
archlens --> archlens_d2
|
|
||||||
archlens --> archlens_walkdir
|
|
||||||
archlens --> archlens_file_writer
|
|
||||||
archlens --> archlens_mermaid
|
|
||||||
archlens --> archlens_cargo_workspace
|
|
||||||
archlens --> archlens_python_project
|
archlens --> archlens_python_project
|
||||||
|
archlens --> archlens_walkdir
|
||||||
|
archlens --> archlens_html
|
||||||
|
archlens --> archlens_d2
|
||||||
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
|
||||||
|
|||||||
@@ -31,92 +31,92 @@ classDiagram
|
|||||||
class MemberToml
|
class MemberToml
|
||||||
class PackageSection
|
class PackageSection
|
||||||
}
|
}
|
||||||
MermaidRenderer : level: DiagramLevel
|
MermaidRenderer : level DiagramLevel
|
||||||
MermaidRenderer : show_weights: bool
|
MermaidRenderer : show_weights bool
|
||||||
MermaidRenderer : +new() -> Self
|
MermaidRenderer : +new() -] Self
|
||||||
MermaidRenderer : +with_level(level: DiagramLevel) -> Self
|
MermaidRenderer : +with_level(level DiagramLevel) -] Self
|
||||||
MermaidRenderer : +with_weights(show: bool) -> Self
|
MermaidRenderer : +with_weights(show bool) -] Self
|
||||||
MermaidRenderer : -display_name(qualified: &str) -> &str
|
MermaidRenderer : -display_name(qualified str) -] str
|
||||||
MermaidRenderer : -format_element_name(element: &CodeElement) -> String
|
MermaidRenderer : -format_element_name(element CodeElement) -] String
|
||||||
MermaidRenderer : -format_visibility(visibility: Visibility) -> &'static str
|
MermaidRenderer : -format_visibility(visibility Visibility) -] static str
|
||||||
MermaidRenderer : -render_class_diagram(graph: &CodeGraph) -> String
|
MermaidRenderer : -render_class_diagram(graph CodeGraph) -] String
|
||||||
MermaidRenderer : -push_class_lines(lines: &mut Vec<String>, deferred: &mut Vec<String>, element: &CodeElement, indent: &str, in_namespace: bool)
|
MermaidRenderer : -push_class_lines(lines mut Vec[String], deferred mut Vec[String], element CodeElement, indent str, in_namespace bool)
|
||||||
MermaidRenderer : -render_module_flowchart(graph: &CodeGraph) -> String
|
MermaidRenderer : -render_module_flowchart(graph CodeGraph) -] String
|
||||||
MermaidRenderer : -render_project_flowchart(graph: &CodeGraph) -> String
|
MermaidRenderer : -render_project_flowchart(graph CodeGraph) -] String
|
||||||
MermaidRenderer : -sanitize_id(name: &str) -> String
|
MermaidRenderer : -sanitize_id(name str) -] String
|
||||||
AsciiRenderer : +new() -> Self
|
AsciiRenderer : +new() -] Self
|
||||||
AsciiRenderer : -format_kind(element: &CodeElement) -> &'static str
|
AsciiRenderer : -format_kind(element CodeElement) -] static str
|
||||||
PythonProjectAnalyzer : +new() -> Self
|
PythonProjectAnalyzer : +new() -] Self
|
||||||
<<private>> ProjectSection
|
<<private>> ProjectSection
|
||||||
ProjectSection : name: Option
|
ProjectSection : name Option
|
||||||
ProjectSection : dependencies: Vec
|
ProjectSection : dependencies Vec
|
||||||
<<private>> PoetrySection
|
<<private>> PoetrySection
|
||||||
PoetrySection : name: Option
|
PoetrySection : name Option
|
||||||
PoetrySection : dependencies: HashMap
|
PoetrySection : dependencies HashMap
|
||||||
<<private>> ToolSection
|
<<private>> ToolSection
|
||||||
ToolSection : poetry: PoetrySection
|
ToolSection : poetry PoetrySection
|
||||||
<<private>> PyprojectToml
|
<<private>> PyprojectToml
|
||||||
PyprojectToml : project: Option
|
PyprojectToml : project Option
|
||||||
PyprojectToml : tool: ToolSection
|
PyprojectToml : tool ToolSection
|
||||||
WalkdirDiscovery : +new() -> Self
|
WalkdirDiscovery : +new() -] Self
|
||||||
WalkdirDiscovery : -detect_language(path: &Path) -> Option<Language>
|
WalkdirDiscovery : -detect_language(path Path) -] Option[Language]
|
||||||
WalkdirDiscovery : -is_test_file(path: &Path, language: Language) -> bool
|
WalkdirDiscovery : -is_test_file(path Path, language Language) -] bool
|
||||||
WalkdirDiscovery : -is_excluded(path: &Path, root: &Path, excludes: &[String]) -> bool
|
WalkdirDiscovery : -is_excluded(path Path, root Path, excludes [String]) -] bool
|
||||||
TreeSitterAnalyzer : rust: RustExtractor
|
TreeSitterAnalyzer : rust RustExtractor
|
||||||
TreeSitterAnalyzer : python: PythonExtractor
|
TreeSitterAnalyzer : python PythonExtractor
|
||||||
TreeSitterAnalyzer : +new() -> Self
|
TreeSitterAnalyzer : +new() -] Self
|
||||||
TreeSitterAnalyzer : -extractor_for(language: Language) -> Option<&dyn LanguageExtractor>
|
TreeSitterAnalyzer : -extractor_for(language Language) -] Option[dyn LanguageExtractor]
|
||||||
FileOutputWriter : output_path: OutputPath
|
FileOutputWriter : output_path OutputPath
|
||||||
FileOutputWriter : +new(output_dir: PathBuf) -> Self
|
FileOutputWriter : +new(output_dir PathBuf) -] Self
|
||||||
FileOutputWriter : +single_file(path: PathBuf) -> Self
|
FileOutputWriter : +single_file(path PathBuf) -] Self
|
||||||
<<private>> OutputPath
|
<<private>> OutputPath
|
||||||
StdoutOutputWriter : +new() -> Self
|
StdoutOutputWriter : +new() -] Self
|
||||||
<<private>> RawRules
|
<<private>> RawRules
|
||||||
RawRules : allow: Vec
|
RawRules : allow Vec
|
||||||
RawRules : deny: Vec
|
RawRules : deny Vec
|
||||||
<<private>> RawConfig
|
<<private>> RawConfig
|
||||||
RawConfig : analysis: RawAnalysis
|
RawConfig : analysis RawAnalysis
|
||||||
RawConfig : output: RawOutput
|
RawConfig : output RawOutput
|
||||||
RawConfig : modules: HashMap
|
RawConfig : modules HashMap
|
||||||
RawConfig : rules: RawRules
|
RawConfig : rules RawRules
|
||||||
<<private>> RawAnalysis
|
<<private>> RawAnalysis
|
||||||
RawAnalysis : exclude: Vec
|
RawAnalysis : exclude Vec
|
||||||
RawAnalysis : level: Option
|
RawAnalysis : level Option
|
||||||
<<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
|
||||||
TomlConfigLoader : raw: RawConfig
|
TomlConfigLoader : raw RawConfig
|
||||||
TomlConfigLoader : +from_path(path: &Path) -> Result<Self, DomainError>
|
TomlConfigLoader : +from_path(path Path) -] Result[Self, DomainError]
|
||||||
TomlConfigLoader : -parse_level(level: &Option<String>) -> DiagramLevel
|
TomlConfigLoader : -parse_level(level Option[String]) -] DiagramLevel
|
||||||
D2Renderer : level: DiagramLevel
|
D2Renderer : level DiagramLevel
|
||||||
D2Renderer : +new() -> Self
|
D2Renderer : +new() -] Self
|
||||||
D2Renderer : +with_level(level: DiagramLevel) -> Self
|
D2Renderer : +with_level(level DiagramLevel) -] Self
|
||||||
HtmlRenderer : +new() -> Self
|
HtmlRenderer : +new() -] Self
|
||||||
<<private>> GraphData
|
<<private>> GraphData
|
||||||
GraphData : nodes: Vec
|
GraphData : nodes Vec
|
||||||
GraphData : edges: Vec
|
GraphData : edges Vec
|
||||||
<<private>> NodeData
|
<<private>> NodeData
|
||||||
NodeData : id: String
|
NodeData : id String
|
||||||
NodeData : label: String
|
NodeData : label String
|
||||||
NodeData : module: String
|
NodeData : module String
|
||||||
NodeData : kind: String
|
NodeData : kind String
|
||||||
NodeData : fields: Vec
|
NodeData : fields Vec
|
||||||
NodeData : methods: Vec
|
NodeData : methods Vec
|
||||||
<<private>> EdgeData
|
<<private>> EdgeData
|
||||||
EdgeData : source: String
|
EdgeData : source String
|
||||||
EdgeData : target: String
|
EdgeData : target String
|
||||||
EdgeData : kind: String
|
EdgeData : kind String
|
||||||
CargoWorkspaceAnalyzer : +new() -> Self
|
CargoWorkspaceAnalyzer : +new() -] Self
|
||||||
<<private>> WorkspaceToml
|
<<private>> WorkspaceToml
|
||||||
WorkspaceToml : workspace: Option
|
WorkspaceToml : workspace Option
|
||||||
<<private>> WorkspaceSection
|
<<private>> WorkspaceSection
|
||||||
WorkspaceSection : members: Vec
|
WorkspaceSection : members Vec
|
||||||
<<private>> MemberToml
|
<<private>> MemberToml
|
||||||
MemberToml : package: Option
|
MemberToml : package Option
|
||||||
MemberToml : dependencies: HashMap
|
MemberToml : dependencies HashMap
|
||||||
<<private>> PackageSection
|
<<private>> PackageSection
|
||||||
PackageSection : name: String
|
PackageSection : name String
|
||||||
ToolSection --> PoetrySection
|
ToolSection --> PoetrySection
|
||||||
PyprojectToml --> ToolSection
|
PyprojectToml --> ToolSection
|
||||||
TreeSitterAnalyzer --> RustExtractor
|
TreeSitterAnalyzer --> RustExtractor
|
||||||
|
|||||||
@@ -3,14 +3,14 @@ classDiagram
|
|||||||
class AnalyzeCodebase
|
class AnalyzeCodebase
|
||||||
class AnalyzeCodebaseResult
|
class AnalyzeCodebaseResult
|
||||||
}
|
}
|
||||||
AnalyzeCodebase : file_discovery: F
|
AnalyzeCodebase : file_discovery F
|
||||||
AnalyzeCodebase : source_analyzer: S
|
AnalyzeCodebase : source_analyzer S
|
||||||
AnalyzeCodebase : +new(file_discovery: F, source_analyzer: S) -> Self
|
AnalyzeCodebase : +new(file_discovery F, source_analyzer S) -] Self
|
||||||
AnalyzeCodebase : +execute(root: &Path, config: &AnalysisConfig) -> Result<AnalyzeCodebaseResult, DomainError>
|
AnalyzeCodebase : +execute(root Path, config AnalysisConfig) -] Result[AnalyzeCodebaseResult, DomainError]
|
||||||
AnalyzeCodebaseResult : graph: CodeGraph
|
AnalyzeCodebaseResult : graph CodeGraph
|
||||||
AnalyzeCodebaseResult : warnings: Vec
|
AnalyzeCodebaseResult : warnings Vec
|
||||||
AnalyzeCodebaseResult : +graph() -> &CodeGraph
|
AnalyzeCodebaseResult : +graph() -] CodeGraph
|
||||||
AnalyzeCodebaseResult : +warnings() -> &[AnalysisWarning]
|
AnalyzeCodebaseResult : +warnings() -] [AnalysisWarning]
|
||||||
class application_module["Application"] {
|
class application_module["Application"] {
|
||||||
<<module>>
|
<<module>>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,135 +28,135 @@ classDiagram
|
|||||||
class CodeGraph
|
class CodeGraph
|
||||||
class DomainError
|
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(split: bool) -> Self
|
OutputConfig : +with_split_by_module(split bool) -] Self
|
||||||
OutputConfig : +with_output_path(path: String) -> Self
|
OutputConfig : +with_output_path(path String) -] Self
|
||||||
OutputConfig : +split_by_module() -> bool
|
OutputConfig : +split_by_module() -] bool
|
||||||
OutputConfig : +output_path() -> Option<&str>
|
OutputConfig : +output_path() -] Option[str]
|
||||||
RenderOutput : files: Vec
|
RenderOutput : files Vec
|
||||||
RenderOutput : +new(files: Vec<RenderedFile>) -> Self
|
RenderOutput : +new(files Vec[RenderedFile]) -] Self
|
||||||
RenderOutput : +single(file: RenderedFile) -> Self
|
RenderOutput : +single(file RenderedFile) -] Self
|
||||||
RenderOutput : +files() -> &[RenderedFile]
|
RenderOutput : +files() -] [RenderedFile]
|
||||||
RenderedFile : name: String
|
RenderedFile : name String
|
||||||
RenderedFile : content: String
|
RenderedFile : content String
|
||||||
RenderedFile : +new(name: &str, content: &str) -> Result<Self, DomainError>
|
RenderedFile : +new(name str, content str) -] Result[Self, DomainError]
|
||||||
RenderedFile : +name() -> &str
|
RenderedFile : +name() -] str
|
||||||
RenderedFile : +content() -> &str
|
RenderedFile : +content() -] str
|
||||||
SourceFile : path: FilePath
|
SourceFile : path FilePath
|
||||||
SourceFile : language: Language
|
SourceFile : language Language
|
||||||
SourceFile : +new(path: FilePath, language: Language) -> Self
|
SourceFile : +new(path FilePath, language Language) -] Self
|
||||||
SourceFile : +path() -> &FilePath
|
SourceFile : +path() -] FilePath
|
||||||
SourceFile : +language() -> Language
|
SourceFile : +language() -] Language
|
||||||
ModuleName : +new(value: &str) -> Result<Self, DomainError>
|
ModuleName : +new(value str) -] Result[Self, DomainError]
|
||||||
ModuleName : +from_path(file_path: &str, root: &Path, module_mappings: &HashMap<String, String>) -> Option<Self>
|
ModuleName : +from_path(file_path str, root Path, module_mappings HashMap[String, String]) -] Option[Self]
|
||||||
ModuleName : +from_directory_group(member_path: &str) -> Option<Self>
|
ModuleName : +from_directory_group(member_path str) -] Option[Self]
|
||||||
ModuleName : +capitalize(s: &str) -> String
|
ModuleName : +capitalize(s str) -] String
|
||||||
ModuleName : +as_str() -> &str
|
ModuleName : +as_str() -] str
|
||||||
Language : +name() -> &'static str
|
Language : +name() -] static str
|
||||||
FilePath : +new(value: &str) -> Result<Self, DomainError>
|
FilePath : +new(value str) -] Result[Self, DomainError]
|
||||||
FilePath : +as_str() -> &str
|
FilePath : +as_str() -] str
|
||||||
RuleViolation : source_module: String
|
RuleViolation : source_module String
|
||||||
RuleViolation : target_module: String
|
RuleViolation : target_module String
|
||||||
RuleViolation : kind: RuleKind
|
RuleViolation : kind RuleKind
|
||||||
RuleViolation : +new(source_module: &str, target_module: &str, kind: RuleKind) -> Self
|
RuleViolation : +new(source_module str, target_module str, kind RuleKind) -] Self
|
||||||
RuleViolation : +source_module() -> &str
|
RuleViolation : +source_module() -] str
|
||||||
RuleViolation : +target_module() -> &str
|
RuleViolation : +target_module() -] str
|
||||||
RuleViolation : +kind() -> &RuleKind
|
RuleViolation : +kind() -] RuleKind
|
||||||
RuleViolation : +message() -> String
|
RuleViolation : +message() -] String
|
||||||
BoundaryRule : source: String
|
BoundaryRule : source String
|
||||||
BoundaryRule : target: String
|
BoundaryRule : target String
|
||||||
BoundaryRule : +parse(s: &str) -> Option<Self>
|
BoundaryRule : +parse(s str) -] Option[Self]
|
||||||
BoundaryRule : +source() -> &str
|
BoundaryRule : +source() -] str
|
||||||
BoundaryRule : +target() -> &str
|
BoundaryRule : +target() -] str
|
||||||
BoundaryRule : +matches(src_module: &str, tgt_module: &str) -> bool
|
BoundaryRule : +matches(src_module str, tgt_module str) -] bool
|
||||||
AnalysisConfig : excludes: Vec
|
AnalysisConfig : excludes Vec
|
||||||
AnalysisConfig : level: DiagramLevel
|
AnalysisConfig : level DiagramLevel
|
||||||
AnalysisConfig : module_mappings: HashMap
|
AnalysisConfig : module_mappings HashMap
|
||||||
AnalysisConfig : scope: Option
|
AnalysisConfig : scope Option
|
||||||
AnalysisConfig : include_tests: bool
|
AnalysisConfig : include_tests bool
|
||||||
AnalysisConfig : changed_files: Option
|
AnalysisConfig : changed_files Option
|
||||||
AnalysisConfig : +with_excludes(excludes: Vec<String>) -> Self
|
AnalysisConfig : +with_excludes(excludes Vec[String]) -] Self
|
||||||
AnalysisConfig : +with_level(level: DiagramLevel) -> Self
|
AnalysisConfig : +with_level(level DiagramLevel) -] Self
|
||||||
AnalysisConfig : +with_module_mappings(mappings: HashMap<String, String>) -> Self
|
AnalysisConfig : +with_module_mappings(mappings HashMap[String, String]) -] Self
|
||||||
AnalysisConfig : +excludes() -> &[String]
|
AnalysisConfig : +excludes() -] [String]
|
||||||
AnalysisConfig : +level() -> DiagramLevel
|
AnalysisConfig : +level() -] DiagramLevel
|
||||||
AnalysisConfig : +with_scope(scope: String) -> Self
|
AnalysisConfig : +with_scope(scope String) -] Self
|
||||||
AnalysisConfig : +module_mappings() -> &HashMap<String, String>
|
AnalysisConfig : +module_mappings() -] HashMap[String, String]
|
||||||
AnalysisConfig : +scope() -> Option<&str>
|
AnalysisConfig : +scope() -] Option[str]
|
||||||
AnalysisConfig : +with_include_tests(include: bool) -> Self
|
AnalysisConfig : +with_include_tests(include bool) -] Self
|
||||||
AnalysisConfig : +include_tests() -> bool
|
AnalysisConfig : +include_tests() -] bool
|
||||||
AnalysisConfig : +with_changed_files(files: HashSet<String>) -> Self
|
AnalysisConfig : +with_changed_files(files HashSet[String]) -] Self
|
||||||
AnalysisConfig : +changed_files() -> Option<&HashSet<String>>
|
AnalysisConfig : +changed_files() -] Option[HashSet[String]]
|
||||||
AnalysisResult : elements: Vec
|
AnalysisResult : elements Vec
|
||||||
AnalysisResult : relationships: Vec
|
AnalysisResult : relationships Vec
|
||||||
AnalysisResult : warnings: Vec
|
AnalysisResult : warnings Vec
|
||||||
AnalysisResult : +new(elements: Vec<CodeElement>, relationships: Vec<Relationship>, warnings: Vec<AnalysisWarning>) -> Self
|
AnalysisResult : +new(elements Vec[CodeElement], relationships Vec[Relationship], warnings Vec[AnalysisWarning]) -] Self
|
||||||
AnalysisResult : +empty() -> Self
|
AnalysisResult : +empty() -] Self
|
||||||
AnalysisResult : +elements() -> &[CodeElement]
|
AnalysisResult : +elements() -] [CodeElement]
|
||||||
AnalysisResult : +relationships() -> &[Relationship]
|
AnalysisResult : +relationships() -] [Relationship]
|
||||||
AnalysisResult : +warnings() -> &[AnalysisWarning]
|
AnalysisResult : +warnings() -] [AnalysisWarning]
|
||||||
AnalysisWarning : file_path: FilePath
|
AnalysisWarning : file_path FilePath
|
||||||
AnalysisWarning : line: usize
|
AnalysisWarning : line usize
|
||||||
AnalysisWarning : message: String
|
AnalysisWarning : message String
|
||||||
AnalysisWarning : +new(file_path: FilePath, line: usize, message: &str) -> Result<Self, DomainError>
|
AnalysisWarning : +new(file_path FilePath, line usize, message str) -] Result[Self, DomainError]
|
||||||
AnalysisWarning : +file_path() -> &FilePath
|
AnalysisWarning : +file_path() -] FilePath
|
||||||
AnalysisWarning : +line() -> usize
|
AnalysisWarning : +line() -] usize
|
||||||
AnalysisWarning : +message() -> &str
|
AnalysisWarning : +message() -] str
|
||||||
Relationship : source: String
|
Relationship : source String
|
||||||
Relationship : target: String
|
Relationship : target String
|
||||||
Relationship : kind: RelationshipKind
|
Relationship : kind RelationshipKind
|
||||||
Relationship : source_file: Option
|
Relationship : source_file Option
|
||||||
Relationship : +new(source: &str, target: &str, kind: RelationshipKind) -> Result<Self, DomainError>
|
Relationship : +new(source str, target str, kind RelationshipKind) -] Result[Self, DomainError]
|
||||||
Relationship : +with_source_file(file: FilePath) -> Self
|
Relationship : +with_source_file(file FilePath) -] Self
|
||||||
Relationship : +source() -> &str
|
Relationship : +source() -] str
|
||||||
Relationship : +target() -> &str
|
Relationship : +target() -] str
|
||||||
Relationship : +kind() -> RelationshipKind
|
Relationship : +kind() -] RelationshipKind
|
||||||
Relationship : +source_file() -> Option<&FilePath>
|
Relationship : +source_file() -] Option[FilePath]
|
||||||
CodeElement : name: String
|
CodeElement : name String
|
||||||
CodeElement : qualified_name: Option
|
CodeElement : qualified_name Option
|
||||||
CodeElement : kind: CodeElementKind
|
CodeElement : kind CodeElementKind
|
||||||
CodeElement : file_path: FilePath
|
CodeElement : file_path FilePath
|
||||||
CodeElement : line: usize
|
CodeElement : line usize
|
||||||
CodeElement : visibility: Visibility
|
CodeElement : visibility Visibility
|
||||||
CodeElement : module: Option
|
CodeElement : module Option
|
||||||
CodeElement : generics: Vec
|
CodeElement : generics Vec
|
||||||
CodeElement : attributes: Vec
|
CodeElement : attributes Vec
|
||||||
CodeElement : fields: Vec
|
CodeElement : fields Vec
|
||||||
CodeElement : methods: Vec
|
CodeElement : methods Vec
|
||||||
CodeElement : +new(name: &str, kind: CodeElementKind, file_path: FilePath, line: usize) -> Result<Self, DomainError>
|
CodeElement : +new(name str, kind CodeElementKind, file_path FilePath, line usize) -] Result[Self, DomainError]
|
||||||
CodeElement : +with_visibility(visibility: Visibility) -> Self
|
CodeElement : +with_visibility(visibility Visibility) -] Self
|
||||||
CodeElement : +with_module(module: ModuleName) -> Self
|
CodeElement : +with_module(module ModuleName) -] Self
|
||||||
CodeElement : +with_generics(generics: Vec<String>) -> Self
|
CodeElement : +with_generics(generics Vec[String]) -] Self
|
||||||
CodeElement : +with_attributes(attributes: Vec<String>) -> Self
|
CodeElement : +with_attributes(attributes Vec[String]) -] Self
|
||||||
CodeElement : +with_qualified_name(qn: String) -> Self
|
CodeElement : +with_qualified_name(qn String) -] Self
|
||||||
CodeElement : +name() -> &str
|
CodeElement : +name() -] str
|
||||||
CodeElement : +qualified_name() -> &str
|
CodeElement : +qualified_name() -] str
|
||||||
CodeElement : +kind() -> CodeElementKind
|
CodeElement : +kind() -] CodeElementKind
|
||||||
CodeElement : +file_path() -> &FilePath
|
CodeElement : +file_path() -] FilePath
|
||||||
CodeElement : +line() -> usize
|
CodeElement : +line() -] usize
|
||||||
CodeElement : +visibility() -> Visibility
|
CodeElement : +visibility() -] Visibility
|
||||||
CodeElement : +module() -> Option<&ModuleName>
|
CodeElement : +module() -] Option[ModuleName]
|
||||||
CodeElement : +generics() -> &[String]
|
CodeElement : +generics() -] [String]
|
||||||
CodeElement : +attributes() -> &[String]
|
CodeElement : +attributes() -] [String]
|
||||||
CodeElement : +with_fields(fields: Vec<String>) -> Self
|
CodeElement : +with_fields(fields Vec[String]) -] Self
|
||||||
CodeElement : +with_methods(methods: Vec<String>) -> Self
|
CodeElement : +with_methods(methods Vec[String]) -] Self
|
||||||
CodeElement : +fields() -> &[String]
|
CodeElement : +fields() -] [String]
|
||||||
CodeElement : +methods() -> &[String]
|
CodeElement : +methods() -] [String]
|
||||||
CodeGraph : elements: Vec
|
CodeGraph : elements Vec
|
||||||
CodeGraph : relationships: Vec
|
CodeGraph : relationships Vec
|
||||||
CodeGraph : +new() -> Self
|
CodeGraph : +new() -] Self
|
||||||
CodeGraph : +add_element(element: CodeElement)
|
CodeGraph : +add_element(element CodeElement)
|
||||||
CodeGraph : +add_relationship(relationship: Relationship)
|
CodeGraph : +add_relationship(relationship Relationship)
|
||||||
CodeGraph : +elements() -> &[CodeElement]
|
CodeGraph : +elements() -] [CodeElement]
|
||||||
CodeGraph : +relationships() -> &[Relationship]
|
CodeGraph : +relationships() -] [Relationship]
|
||||||
CodeGraph : +modules() -> Vec<ModuleName>
|
CodeGraph : +modules() -] Vec[ModuleName]
|
||||||
CodeGraph : +elements_by_module() -> (HashMap<String, Vec<&CodeElement>>, Vec<&CodeElement>)
|
CodeGraph : +elements_by_module() -] (HashMap[String, Vec[CodeElement]], Vec[CodeElement])
|
||||||
CodeGraph : +resolve_relationships() -> CodeGraph
|
CodeGraph : +resolve_relationships() -] CodeGraph
|
||||||
CodeGraph : +filter_external_imports(known_modules: &HashSet<String>) -> CodeGraph
|
CodeGraph : +filter_external_imports(known_modules HashSet[String]) -] CodeGraph
|
||||||
CodeGraph : +qualify() -> CodeGraph
|
CodeGraph : +qualify() -] CodeGraph
|
||||||
CodeGraph : +cross_module_deps_for(module: &ModuleName) -> Vec<(ModuleName, usize)>
|
CodeGraph : +cross_module_deps_for(module ModuleName) -] Vec[(ModuleName, usize)]
|
||||||
CodeGraph : +subgraph_by_module(module: &ModuleName) -> CodeGraph
|
CodeGraph : +subgraph_by_module(module ModuleName) -] CodeGraph
|
||||||
SourceFile --> FilePath
|
SourceFile --> FilePath
|
||||||
SourceFile --> Language
|
SourceFile --> Language
|
||||||
RuleViolation --> RuleKind
|
RuleViolation --> RuleKind
|
||||||
|
|||||||
@@ -1,36 +1,4 @@
|
|||||||
classDiagram
|
classDiagram
|
||||||
namespace Adapters {
|
|
||||||
class MermaidRenderer
|
|
||||||
class AsciiRenderer
|
|
||||||
class PythonProjectAnalyzer
|
|
||||||
class ProjectSection
|
|
||||||
class PoetrySection
|
|
||||||
class ToolSection
|
|
||||||
class PyprojectToml
|
|
||||||
class WalkdirDiscovery
|
|
||||||
class TreeSitterAnalyzer
|
|
||||||
class LanguageExtractor
|
|
||||||
class RustExtractor
|
|
||||||
class PythonExtractor
|
|
||||||
class FileOutputWriter
|
|
||||||
class OutputPath
|
|
||||||
class StdoutOutputWriter
|
|
||||||
class RawRules
|
|
||||||
class RawConfig
|
|
||||||
class RawAnalysis
|
|
||||||
class RawOutput
|
|
||||||
class TomlConfigLoader
|
|
||||||
class D2Renderer
|
|
||||||
class HtmlRenderer
|
|
||||||
class GraphData
|
|
||||||
class NodeData
|
|
||||||
class EdgeData
|
|
||||||
class CargoWorkspaceAnalyzer
|
|
||||||
class WorkspaceToml
|
|
||||||
class WorkspaceSection
|
|
||||||
class MemberToml
|
|
||||||
class PackageSection
|
|
||||||
}
|
|
||||||
namespace Domain {
|
namespace Domain {
|
||||||
class OutputConfig
|
class OutputConfig
|
||||||
class DiagramLevel
|
class DiagramLevel
|
||||||
@@ -64,249 +32,281 @@ classDiagram
|
|||||||
class AnalyzeCodebase
|
class AnalyzeCodebase
|
||||||
class AnalyzeCodebaseResult
|
class AnalyzeCodebaseResult
|
||||||
}
|
}
|
||||||
|
namespace Adapters {
|
||||||
|
class MermaidRenderer
|
||||||
|
class AsciiRenderer
|
||||||
|
class PythonProjectAnalyzer
|
||||||
|
class ProjectSection
|
||||||
|
class PoetrySection
|
||||||
|
class ToolSection
|
||||||
|
class PyprojectToml
|
||||||
|
class WalkdirDiscovery
|
||||||
|
class TreeSitterAnalyzer
|
||||||
|
class LanguageExtractor
|
||||||
|
class RustExtractor
|
||||||
|
class PythonExtractor
|
||||||
|
class FileOutputWriter
|
||||||
|
class OutputPath
|
||||||
|
class StdoutOutputWriter
|
||||||
|
class RawRules
|
||||||
|
class RawConfig
|
||||||
|
class RawAnalysis
|
||||||
|
class RawOutput
|
||||||
|
class TomlConfigLoader
|
||||||
|
class D2Renderer
|
||||||
|
class HtmlRenderer
|
||||||
|
class GraphData
|
||||||
|
class NodeData
|
||||||
|
class EdgeData
|
||||||
|
class CargoWorkspaceAnalyzer
|
||||||
|
class WorkspaceToml
|
||||||
|
class WorkspaceSection
|
||||||
|
class MemberToml
|
||||||
|
class PackageSection
|
||||||
|
}
|
||||||
namespace Presentation {
|
namespace Presentation {
|
||||||
class Cli
|
class Cli
|
||||||
class Command
|
class Command
|
||||||
}
|
}
|
||||||
MermaidRenderer : level: DiagramLevel
|
OutputConfig : split_by_module bool
|
||||||
MermaidRenderer : show_weights: bool
|
OutputConfig : output_path Option
|
||||||
MermaidRenderer : +new() -> Self
|
OutputConfig : +with_split_by_module(split bool) -] Self
|
||||||
MermaidRenderer : +with_level(level: DiagramLevel) -> Self
|
OutputConfig : +with_output_path(path String) -] Self
|
||||||
MermaidRenderer : +with_weights(show: bool) -> Self
|
OutputConfig : +split_by_module() -] bool
|
||||||
MermaidRenderer : -display_name(qualified: &str) -> &str
|
OutputConfig : +output_path() -] Option[str]
|
||||||
MermaidRenderer : -format_element_name(element: &CodeElement) -> String
|
RenderOutput : files Vec
|
||||||
MermaidRenderer : -format_visibility(visibility: Visibility) -> &'static str
|
RenderOutput : +new(files Vec[RenderedFile]) -] Self
|
||||||
MermaidRenderer : -render_class_diagram(graph: &CodeGraph) -> String
|
RenderOutput : +single(file RenderedFile) -] Self
|
||||||
MermaidRenderer : -push_class_lines(lines: &mut Vec<String>, deferred: &mut Vec<String>, element: &CodeElement, indent: &str, in_namespace: bool)
|
RenderOutput : +files() -] [RenderedFile]
|
||||||
MermaidRenderer : -render_module_flowchart(graph: &CodeGraph) -> String
|
RenderedFile : name String
|
||||||
MermaidRenderer : -render_project_flowchart(graph: &CodeGraph) -> String
|
RenderedFile : content String
|
||||||
MermaidRenderer : -sanitize_id(name: &str) -> String
|
RenderedFile : +new(name str, content str) -] Result[Self, DomainError]
|
||||||
AsciiRenderer : +new() -> Self
|
RenderedFile : +name() -] str
|
||||||
AsciiRenderer : -format_kind(element: &CodeElement) -> &'static str
|
RenderedFile : +content() -] str
|
||||||
PythonProjectAnalyzer : +new() -> Self
|
SourceFile : path FilePath
|
||||||
|
SourceFile : language Language
|
||||||
|
SourceFile : +new(path FilePath, language Language) -] Self
|
||||||
|
SourceFile : +path() -] FilePath
|
||||||
|
SourceFile : +language() -] Language
|
||||||
|
ModuleName : +new(value str) -] Result[Self, DomainError]
|
||||||
|
ModuleName : +from_path(file_path str, root Path, module_mappings HashMap[String, String]) -] Option[Self]
|
||||||
|
ModuleName : +from_directory_group(member_path str) -] Option[Self]
|
||||||
|
ModuleName : +capitalize(s str) -] String
|
||||||
|
ModuleName : +as_str() -] str
|
||||||
|
Language : +name() -] static str
|
||||||
|
FilePath : +new(value str) -] Result[Self, DomainError]
|
||||||
|
FilePath : +as_str() -] str
|
||||||
|
RuleViolation : source_module String
|
||||||
|
RuleViolation : target_module String
|
||||||
|
RuleViolation : kind RuleKind
|
||||||
|
RuleViolation : +new(source_module str, target_module str, kind RuleKind) -] Self
|
||||||
|
RuleViolation : +source_module() -] str
|
||||||
|
RuleViolation : +target_module() -] str
|
||||||
|
RuleViolation : +kind() -] RuleKind
|
||||||
|
RuleViolation : +message() -] String
|
||||||
|
BoundaryRule : source String
|
||||||
|
BoundaryRule : target String
|
||||||
|
BoundaryRule : +parse(s str) -] Option[Self]
|
||||||
|
BoundaryRule : +source() -] str
|
||||||
|
BoundaryRule : +target() -] str
|
||||||
|
BoundaryRule : +matches(src_module str, tgt_module str) -] bool
|
||||||
|
AnalysisConfig : excludes Vec
|
||||||
|
AnalysisConfig : level DiagramLevel
|
||||||
|
AnalysisConfig : module_mappings HashMap
|
||||||
|
AnalysisConfig : scope Option
|
||||||
|
AnalysisConfig : include_tests bool
|
||||||
|
AnalysisConfig : changed_files Option
|
||||||
|
AnalysisConfig : +with_excludes(excludes Vec[String]) -] Self
|
||||||
|
AnalysisConfig : +with_level(level DiagramLevel) -] Self
|
||||||
|
AnalysisConfig : +with_module_mappings(mappings HashMap[String, String]) -] Self
|
||||||
|
AnalysisConfig : +excludes() -] [String]
|
||||||
|
AnalysisConfig : +level() -] DiagramLevel
|
||||||
|
AnalysisConfig : +with_scope(scope String) -] Self
|
||||||
|
AnalysisConfig : +module_mappings() -] HashMap[String, String]
|
||||||
|
AnalysisConfig : +scope() -] Option[str]
|
||||||
|
AnalysisConfig : +with_include_tests(include bool) -] Self
|
||||||
|
AnalysisConfig : +include_tests() -] bool
|
||||||
|
AnalysisConfig : +with_changed_files(files HashSet[String]) -] Self
|
||||||
|
AnalysisConfig : +changed_files() -] Option[HashSet[String]]
|
||||||
|
AnalysisResult : elements Vec
|
||||||
|
AnalysisResult : relationships Vec
|
||||||
|
AnalysisResult : warnings Vec
|
||||||
|
AnalysisResult : +new(elements Vec[CodeElement], relationships Vec[Relationship], warnings Vec[AnalysisWarning]) -] Self
|
||||||
|
AnalysisResult : +empty() -] Self
|
||||||
|
AnalysisResult : +elements() -] [CodeElement]
|
||||||
|
AnalysisResult : +relationships() -] [Relationship]
|
||||||
|
AnalysisResult : +warnings() -] [AnalysisWarning]
|
||||||
|
AnalysisWarning : file_path FilePath
|
||||||
|
AnalysisWarning : line usize
|
||||||
|
AnalysisWarning : message String
|
||||||
|
AnalysisWarning : +new(file_path FilePath, line usize, message str) -] Result[Self, DomainError]
|
||||||
|
AnalysisWarning : +file_path() -] FilePath
|
||||||
|
AnalysisWarning : +line() -] usize
|
||||||
|
AnalysisWarning : +message() -] str
|
||||||
|
Relationship : source String
|
||||||
|
Relationship : target String
|
||||||
|
Relationship : kind RelationshipKind
|
||||||
|
Relationship : source_file Option
|
||||||
|
Relationship : +new(source str, target str, kind RelationshipKind) -] Result[Self, DomainError]
|
||||||
|
Relationship : +with_source_file(file FilePath) -] Self
|
||||||
|
Relationship : +source() -] str
|
||||||
|
Relationship : +target() -] str
|
||||||
|
Relationship : +kind() -] RelationshipKind
|
||||||
|
Relationship : +source_file() -] Option[FilePath]
|
||||||
|
CodeElement : name String
|
||||||
|
CodeElement : qualified_name Option
|
||||||
|
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(name str, kind CodeElementKind, file_path FilePath, line usize) -] Result[Self, DomainError]
|
||||||
|
CodeElement : +with_visibility(visibility Visibility) -] Self
|
||||||
|
CodeElement : +with_module(module ModuleName) -] Self
|
||||||
|
CodeElement : +with_generics(generics Vec[String]) -] Self
|
||||||
|
CodeElement : +with_attributes(attributes Vec[String]) -] Self
|
||||||
|
CodeElement : +with_qualified_name(qn String) -] Self
|
||||||
|
CodeElement : +name() -] str
|
||||||
|
CodeElement : +qualified_name() -] str
|
||||||
|
CodeElement : +kind() -] CodeElementKind
|
||||||
|
CodeElement : +file_path() -] FilePath
|
||||||
|
CodeElement : +line() -] usize
|
||||||
|
CodeElement : +visibility() -] Visibility
|
||||||
|
CodeElement : +module() -] Option[ModuleName]
|
||||||
|
CodeElement : +generics() -] [String]
|
||||||
|
CodeElement : +attributes() -] [String]
|
||||||
|
CodeElement : +with_fields(fields Vec[String]) -] Self
|
||||||
|
CodeElement : +with_methods(methods Vec[String]) -] Self
|
||||||
|
CodeElement : +fields() -] [String]
|
||||||
|
CodeElement : +methods() -] [String]
|
||||||
|
CodeGraph : elements Vec
|
||||||
|
CodeGraph : relationships Vec
|
||||||
|
CodeGraph : +new() -] Self
|
||||||
|
CodeGraph : +add_element(element CodeElement)
|
||||||
|
CodeGraph : +add_relationship(relationship Relationship)
|
||||||
|
CodeGraph : +elements() -] [CodeElement]
|
||||||
|
CodeGraph : +relationships() -] [Relationship]
|
||||||
|
CodeGraph : +modules() -] Vec[ModuleName]
|
||||||
|
CodeGraph : +elements_by_module() -] (HashMap[String, Vec[CodeElement]], Vec[CodeElement])
|
||||||
|
CodeGraph : +resolve_relationships() -] CodeGraph
|
||||||
|
CodeGraph : +filter_external_imports(known_modules HashSet[String]) -] CodeGraph
|
||||||
|
CodeGraph : +qualify() -] CodeGraph
|
||||||
|
CodeGraph : +cross_module_deps_for(module ModuleName) -] Vec[(ModuleName, usize)]
|
||||||
|
CodeGraph : +subgraph_by_module(module ModuleName) -] CodeGraph
|
||||||
|
AnalyzeCodebase : file_discovery F
|
||||||
|
AnalyzeCodebase : source_analyzer S
|
||||||
|
AnalyzeCodebase : +new(file_discovery F, source_analyzer S) -] Self
|
||||||
|
AnalyzeCodebase : +execute(root Path, config AnalysisConfig) -] Result[AnalyzeCodebaseResult, DomainError]
|
||||||
|
AnalyzeCodebaseResult : graph CodeGraph
|
||||||
|
AnalyzeCodebaseResult : warnings Vec
|
||||||
|
AnalyzeCodebaseResult : +graph() -] CodeGraph
|
||||||
|
AnalyzeCodebaseResult : +warnings() -] [AnalysisWarning]
|
||||||
|
MermaidRenderer : level DiagramLevel
|
||||||
|
MermaidRenderer : show_weights bool
|
||||||
|
MermaidRenderer : +new() -] Self
|
||||||
|
MermaidRenderer : +with_level(level DiagramLevel) -] Self
|
||||||
|
MermaidRenderer : +with_weights(show bool) -] Self
|
||||||
|
MermaidRenderer : -display_name(qualified str) -] str
|
||||||
|
MermaidRenderer : -format_element_name(element CodeElement) -] String
|
||||||
|
MermaidRenderer : -format_visibility(visibility Visibility) -] static str
|
||||||
|
MermaidRenderer : -render_class_diagram(graph CodeGraph) -] String
|
||||||
|
MermaidRenderer : -push_class_lines(lines mut Vec[String], deferred mut Vec[String], element CodeElement, indent str, in_namespace bool)
|
||||||
|
MermaidRenderer : -render_module_flowchart(graph CodeGraph) -] String
|
||||||
|
MermaidRenderer : -render_project_flowchart(graph CodeGraph) -] String
|
||||||
|
MermaidRenderer : -sanitize_id(name str) -] String
|
||||||
|
AsciiRenderer : +new() -] Self
|
||||||
|
AsciiRenderer : -format_kind(element CodeElement) -] static str
|
||||||
|
PythonProjectAnalyzer : +new() -] Self
|
||||||
<<private>> ProjectSection
|
<<private>> ProjectSection
|
||||||
ProjectSection : name: Option
|
ProjectSection : name Option
|
||||||
ProjectSection : dependencies: Vec
|
ProjectSection : dependencies Vec
|
||||||
<<private>> PoetrySection
|
<<private>> PoetrySection
|
||||||
PoetrySection : name: Option
|
PoetrySection : name Option
|
||||||
PoetrySection : dependencies: HashMap
|
PoetrySection : dependencies HashMap
|
||||||
<<private>> ToolSection
|
<<private>> ToolSection
|
||||||
ToolSection : poetry: PoetrySection
|
ToolSection : poetry PoetrySection
|
||||||
<<private>> PyprojectToml
|
<<private>> PyprojectToml
|
||||||
PyprojectToml : project: Option
|
PyprojectToml : project Option
|
||||||
PyprojectToml : tool: ToolSection
|
PyprojectToml : tool ToolSection
|
||||||
WalkdirDiscovery : +new() -> Self
|
WalkdirDiscovery : +new() -] Self
|
||||||
WalkdirDiscovery : -detect_language(path: &Path) -> Option<Language>
|
WalkdirDiscovery : -detect_language(path Path) -] Option[Language]
|
||||||
WalkdirDiscovery : -is_test_file(path: &Path, language: Language) -> bool
|
WalkdirDiscovery : -is_test_file(path Path, language Language) -] bool
|
||||||
WalkdirDiscovery : -is_excluded(path: &Path, root: &Path, excludes: &[String]) -> bool
|
WalkdirDiscovery : -is_excluded(path Path, root Path, excludes [String]) -] bool
|
||||||
TreeSitterAnalyzer : rust: RustExtractor
|
TreeSitterAnalyzer : rust RustExtractor
|
||||||
TreeSitterAnalyzer : python: PythonExtractor
|
TreeSitterAnalyzer : python PythonExtractor
|
||||||
TreeSitterAnalyzer : +new() -> Self
|
TreeSitterAnalyzer : +new() -] Self
|
||||||
TreeSitterAnalyzer : -extractor_for(language: Language) -> Option<&dyn LanguageExtractor>
|
TreeSitterAnalyzer : -extractor_for(language Language) -] Option[dyn LanguageExtractor]
|
||||||
FileOutputWriter : output_path: OutputPath
|
FileOutputWriter : output_path OutputPath
|
||||||
FileOutputWriter : +new(output_dir: PathBuf) -> Self
|
FileOutputWriter : +new(output_dir PathBuf) -] Self
|
||||||
FileOutputWriter : +single_file(path: PathBuf) -> Self
|
FileOutputWriter : +single_file(path PathBuf) -] Self
|
||||||
<<private>> OutputPath
|
<<private>> OutputPath
|
||||||
StdoutOutputWriter : +new() -> Self
|
StdoutOutputWriter : +new() -] Self
|
||||||
<<private>> RawRules
|
<<private>> RawRules
|
||||||
RawRules : allow: Vec
|
RawRules : allow Vec
|
||||||
RawRules : deny: Vec
|
RawRules : deny Vec
|
||||||
<<private>> RawConfig
|
<<private>> RawConfig
|
||||||
RawConfig : analysis: RawAnalysis
|
RawConfig : analysis RawAnalysis
|
||||||
RawConfig : output: RawOutput
|
RawConfig : output RawOutput
|
||||||
RawConfig : modules: HashMap
|
RawConfig : modules HashMap
|
||||||
RawConfig : rules: RawRules
|
RawConfig : rules RawRules
|
||||||
<<private>> RawAnalysis
|
<<private>> RawAnalysis
|
||||||
RawAnalysis : exclude: Vec
|
RawAnalysis : exclude Vec
|
||||||
RawAnalysis : level: Option
|
RawAnalysis : level Option
|
||||||
<<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
|
||||||
TomlConfigLoader : raw: RawConfig
|
TomlConfigLoader : raw RawConfig
|
||||||
TomlConfigLoader : +from_path(path: &Path) -> Result<Self, DomainError>
|
TomlConfigLoader : +from_path(path Path) -] Result[Self, DomainError]
|
||||||
TomlConfigLoader : -parse_level(level: &Option<String>) -> DiagramLevel
|
TomlConfigLoader : -parse_level(level Option[String]) -] DiagramLevel
|
||||||
D2Renderer : level: DiagramLevel
|
D2Renderer : level DiagramLevel
|
||||||
D2Renderer : +new() -> Self
|
D2Renderer : +new() -] Self
|
||||||
D2Renderer : +with_level(level: DiagramLevel) -> Self
|
D2Renderer : +with_level(level DiagramLevel) -] Self
|
||||||
HtmlRenderer : +new() -> Self
|
HtmlRenderer : +new() -] Self
|
||||||
<<private>> GraphData
|
<<private>> GraphData
|
||||||
GraphData : nodes: Vec
|
GraphData : nodes Vec
|
||||||
GraphData : edges: Vec
|
GraphData : edges Vec
|
||||||
<<private>> NodeData
|
<<private>> NodeData
|
||||||
NodeData : id: String
|
NodeData : id String
|
||||||
NodeData : label: String
|
NodeData : label String
|
||||||
NodeData : module: String
|
NodeData : module String
|
||||||
NodeData : kind: String
|
NodeData : kind String
|
||||||
NodeData : fields: Vec
|
NodeData : fields Vec
|
||||||
NodeData : methods: Vec
|
NodeData : methods Vec
|
||||||
<<private>> EdgeData
|
<<private>> EdgeData
|
||||||
EdgeData : source: String
|
EdgeData : source String
|
||||||
EdgeData : target: String
|
EdgeData : target String
|
||||||
EdgeData : kind: String
|
EdgeData : kind String
|
||||||
CargoWorkspaceAnalyzer : +new() -> Self
|
CargoWorkspaceAnalyzer : +new() -] Self
|
||||||
<<private>> WorkspaceToml
|
<<private>> WorkspaceToml
|
||||||
WorkspaceToml : workspace: Option
|
WorkspaceToml : workspace Option
|
||||||
<<private>> WorkspaceSection
|
<<private>> WorkspaceSection
|
||||||
WorkspaceSection : members: Vec
|
WorkspaceSection : members Vec
|
||||||
<<private>> MemberToml
|
<<private>> MemberToml
|
||||||
MemberToml : package: Option
|
MemberToml : package Option
|
||||||
MemberToml : dependencies: HashMap
|
MemberToml : dependencies HashMap
|
||||||
<<private>> PackageSection
|
<<private>> PackageSection
|
||||||
PackageSection : name: String
|
PackageSection : name String
|
||||||
OutputConfig : split_by_module: bool
|
Cli : command Option
|
||||||
OutputConfig : output_path: Option
|
Cli : path PathBuf
|
||||||
OutputConfig : +with_split_by_module(split: bool) -> Self
|
Cli : level String
|
||||||
OutputConfig : +with_output_path(path: String) -> Self
|
Cli : format String
|
||||||
OutputConfig : +split_by_module() -> bool
|
Cli : output Option
|
||||||
OutputConfig : +output_path() -> Option<&str>
|
Cli : config Option
|
||||||
RenderOutput : files: Vec
|
Cli : scope Option
|
||||||
RenderOutput : +new(files: Vec<RenderedFile>) -> Self
|
Cli : exclude Vec
|
||||||
RenderOutput : +single(file: RenderedFile) -> Self
|
Cli : include_tests bool
|
||||||
RenderOutput : +files() -> &[RenderedFile]
|
Cli : no_weights bool
|
||||||
RenderedFile : name: String
|
Cli : watch bool
|
||||||
RenderedFile : content: String
|
Cli : since Option
|
||||||
RenderedFile : +new(name: &str, content: &str) -> Result<Self, DomainError>
|
Cli : split_by_module bool
|
||||||
RenderedFile : +name() -> &str
|
Cli : strict bool
|
||||||
RenderedFile : +content() -> &str
|
Cli : check bool
|
||||||
SourceFile : path: FilePath
|
Cli : verbose u8
|
||||||
SourceFile : language: Language
|
|
||||||
SourceFile : +new(path: FilePath, language: Language) -> Self
|
|
||||||
SourceFile : +path() -> &FilePath
|
|
||||||
SourceFile : +language() -> Language
|
|
||||||
ModuleName : +new(value: &str) -> Result<Self, DomainError>
|
|
||||||
ModuleName : +from_path(file_path: &str, root: &Path, module_mappings: &HashMap<String, String>) -> Option<Self>
|
|
||||||
ModuleName : +from_directory_group(member_path: &str) -> Option<Self>
|
|
||||||
ModuleName : +capitalize(s: &str) -> String
|
|
||||||
ModuleName : +as_str() -> &str
|
|
||||||
Language : +name() -> &'static str
|
|
||||||
FilePath : +new(value: &str) -> Result<Self, DomainError>
|
|
||||||
FilePath : +as_str() -> &str
|
|
||||||
RuleViolation : source_module: String
|
|
||||||
RuleViolation : target_module: String
|
|
||||||
RuleViolation : kind: RuleKind
|
|
||||||
RuleViolation : +new(source_module: &str, target_module: &str, kind: RuleKind) -> Self
|
|
||||||
RuleViolation : +source_module() -> &str
|
|
||||||
RuleViolation : +target_module() -> &str
|
|
||||||
RuleViolation : +kind() -> &RuleKind
|
|
||||||
RuleViolation : +message() -> String
|
|
||||||
BoundaryRule : source: String
|
|
||||||
BoundaryRule : target: String
|
|
||||||
BoundaryRule : +parse(s: &str) -> Option<Self>
|
|
||||||
BoundaryRule : +source() -> &str
|
|
||||||
BoundaryRule : +target() -> &str
|
|
||||||
BoundaryRule : +matches(src_module: &str, tgt_module: &str) -> bool
|
|
||||||
AnalysisConfig : excludes: Vec
|
|
||||||
AnalysisConfig : level: DiagramLevel
|
|
||||||
AnalysisConfig : module_mappings: HashMap
|
|
||||||
AnalysisConfig : scope: Option
|
|
||||||
AnalysisConfig : include_tests: bool
|
|
||||||
AnalysisConfig : changed_files: Option
|
|
||||||
AnalysisConfig : +with_excludes(excludes: Vec<String>) -> Self
|
|
||||||
AnalysisConfig : +with_level(level: DiagramLevel) -> Self
|
|
||||||
AnalysisConfig : +with_module_mappings(mappings: HashMap<String, String>) -> Self
|
|
||||||
AnalysisConfig : +excludes() -> &[String]
|
|
||||||
AnalysisConfig : +level() -> DiagramLevel
|
|
||||||
AnalysisConfig : +with_scope(scope: String) -> Self
|
|
||||||
AnalysisConfig : +module_mappings() -> &HashMap<String, String>
|
|
||||||
AnalysisConfig : +scope() -> Option<&str>
|
|
||||||
AnalysisConfig : +with_include_tests(include: bool) -> Self
|
|
||||||
AnalysisConfig : +include_tests() -> bool
|
|
||||||
AnalysisConfig : +with_changed_files(files: HashSet<String>) -> Self
|
|
||||||
AnalysisConfig : +changed_files() -> Option<&HashSet<String>>
|
|
||||||
AnalysisResult : elements: Vec
|
|
||||||
AnalysisResult : relationships: Vec
|
|
||||||
AnalysisResult : warnings: Vec
|
|
||||||
AnalysisResult : +new(elements: Vec<CodeElement>, relationships: Vec<Relationship>, warnings: Vec<AnalysisWarning>) -> Self
|
|
||||||
AnalysisResult : +empty() -> Self
|
|
||||||
AnalysisResult : +elements() -> &[CodeElement]
|
|
||||||
AnalysisResult : +relationships() -> &[Relationship]
|
|
||||||
AnalysisResult : +warnings() -> &[AnalysisWarning]
|
|
||||||
AnalysisWarning : file_path: FilePath
|
|
||||||
AnalysisWarning : line: usize
|
|
||||||
AnalysisWarning : message: String
|
|
||||||
AnalysisWarning : +new(file_path: FilePath, line: usize, message: &str) -> Result<Self, DomainError>
|
|
||||||
AnalysisWarning : +file_path() -> &FilePath
|
|
||||||
AnalysisWarning : +line() -> usize
|
|
||||||
AnalysisWarning : +message() -> &str
|
|
||||||
Relationship : source: String
|
|
||||||
Relationship : target: String
|
|
||||||
Relationship : kind: RelationshipKind
|
|
||||||
Relationship : source_file: Option
|
|
||||||
Relationship : +new(source: &str, target: &str, kind: RelationshipKind) -> Result<Self, DomainError>
|
|
||||||
Relationship : +with_source_file(file: FilePath) -> Self
|
|
||||||
Relationship : +source() -> &str
|
|
||||||
Relationship : +target() -> &str
|
|
||||||
Relationship : +kind() -> RelationshipKind
|
|
||||||
Relationship : +source_file() -> Option<&FilePath>
|
|
||||||
CodeElement : name: String
|
|
||||||
CodeElement : qualified_name: Option
|
|
||||||
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(name: &str, kind: CodeElementKind, file_path: FilePath, line: usize) -> Result<Self, DomainError>
|
|
||||||
CodeElement : +with_visibility(visibility: Visibility) -> Self
|
|
||||||
CodeElement : +with_module(module: ModuleName) -> Self
|
|
||||||
CodeElement : +with_generics(generics: Vec<String>) -> Self
|
|
||||||
CodeElement : +with_attributes(attributes: Vec<String>) -> Self
|
|
||||||
CodeElement : +with_qualified_name(qn: String) -> Self
|
|
||||||
CodeElement : +name() -> &str
|
|
||||||
CodeElement : +qualified_name() -> &str
|
|
||||||
CodeElement : +kind() -> CodeElementKind
|
|
||||||
CodeElement : +file_path() -> &FilePath
|
|
||||||
CodeElement : +line() -> usize
|
|
||||||
CodeElement : +visibility() -> Visibility
|
|
||||||
CodeElement : +module() -> Option<&ModuleName>
|
|
||||||
CodeElement : +generics() -> &[String]
|
|
||||||
CodeElement : +attributes() -> &[String]
|
|
||||||
CodeElement : +with_fields(fields: Vec<String>) -> Self
|
|
||||||
CodeElement : +with_methods(methods: Vec<String>) -> Self
|
|
||||||
CodeElement : +fields() -> &[String]
|
|
||||||
CodeElement : +methods() -> &[String]
|
|
||||||
CodeGraph : elements: Vec
|
|
||||||
CodeGraph : relationships: Vec
|
|
||||||
CodeGraph : +new() -> Self
|
|
||||||
CodeGraph : +add_element(element: CodeElement)
|
|
||||||
CodeGraph : +add_relationship(relationship: Relationship)
|
|
||||||
CodeGraph : +elements() -> &[CodeElement]
|
|
||||||
CodeGraph : +relationships() -> &[Relationship]
|
|
||||||
CodeGraph : +modules() -> Vec<ModuleName>
|
|
||||||
CodeGraph : +elements_by_module() -> (HashMap<String, Vec<&CodeElement>>, Vec<&CodeElement>)
|
|
||||||
CodeGraph : +resolve_relationships() -> CodeGraph
|
|
||||||
CodeGraph : +filter_external_imports(known_modules: &HashSet<String>) -> CodeGraph
|
|
||||||
CodeGraph : +qualify() -> CodeGraph
|
|
||||||
CodeGraph : +cross_module_deps_for(module: &ModuleName) -> Vec<(ModuleName, usize)>
|
|
||||||
CodeGraph : +subgraph_by_module(module: &ModuleName) -> CodeGraph
|
|
||||||
AnalyzeCodebase : file_discovery: F
|
|
||||||
AnalyzeCodebase : source_analyzer: S
|
|
||||||
AnalyzeCodebase : +new(file_discovery: F, source_analyzer: S) -> Self
|
|
||||||
AnalyzeCodebase : +execute(root: &Path, config: &AnalysisConfig) -> Result<AnalyzeCodebaseResult, DomainError>
|
|
||||||
AnalyzeCodebaseResult : graph: CodeGraph
|
|
||||||
AnalyzeCodebaseResult : warnings: Vec
|
|
||||||
AnalyzeCodebaseResult : +graph() -> &CodeGraph
|
|
||||||
AnalyzeCodebaseResult : +warnings() -> &[AnalysisWarning]
|
|
||||||
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 : include_tests: bool
|
|
||||||
Cli : no_weights: bool
|
|
||||||
Cli : watch: bool
|
|
||||||
Cli : since: Option
|
|
||||||
Cli : split_by_module: bool
|
|
||||||
Cli : strict: bool
|
|
||||||
Cli : check: bool
|
|
||||||
Cli : verbose: u8
|
|
||||||
SourceFile --> FilePath
|
SourceFile --> FilePath
|
||||||
SourceFile --> Language
|
SourceFile --> Language
|
||||||
RuleViolation --> RuleKind
|
RuleViolation --> RuleKind
|
||||||
|
|||||||
@@ -3,19 +3,19 @@ classDiagram
|
|||||||
class Cli
|
class Cli
|
||||||
class Command
|
class Command
|
||||||
}
|
}
|
||||||
Cli : command: Option
|
Cli : command Option
|
||||||
Cli : path: PathBuf
|
Cli : path PathBuf
|
||||||
Cli : level: String
|
Cli : level String
|
||||||
Cli : format: String
|
Cli : format String
|
||||||
Cli : output: Option
|
Cli : output Option
|
||||||
Cli : config: Option
|
Cli : config Option
|
||||||
Cli : scope: Option
|
Cli : scope Option
|
||||||
Cli : exclude: Vec
|
Cli : exclude Vec
|
||||||
Cli : include_tests: bool
|
Cli : include_tests bool
|
||||||
Cli : no_weights: bool
|
Cli : no_weights bool
|
||||||
Cli : watch: bool
|
Cli : watch bool
|
||||||
Cli : since: Option
|
Cli : since Option
|
||||||
Cli : split_by_module: bool
|
Cli : split_by_module bool
|
||||||
Cli : strict: bool
|
Cli : strict bool
|
||||||
Cli : check: bool
|
Cli : check bool
|
||||||
Cli : verbose: u8
|
Cli : verbose u8
|
||||||
Reference in New Issue
Block a user