1#![allow(clippy::uninlined_format_args)]
2
3pub mod apted;
4pub mod ast_exchange;
5pub mod ast_fingerprint;
6pub mod class_comparator;
7pub mod class_extractor;
8pub mod config_loader;
9pub mod css_structure_adapter;
10pub mod enhanced_similarity;
11pub mod fast_similarity;
12pub mod function_extractor;
13pub mod generic_overlap_detector;
14pub mod generic_parser_config;
15pub mod generic_tree_sitter_parser;
16mod ignore_directive;
17pub mod language_parser;
18pub mod overlap_detector;
19pub mod parser;
20pub mod rust_structure_adapter;
21pub mod structure_comparator;
22pub mod subtree_fingerprint;
23pub mod tree;
24pub mod tsed;
25pub mod type_comparator;
26pub mod type_extractor;
27pub mod type_fingerprint;
28pub mod type_normalizer;
29pub mod typescript_structure_adapter;
30pub mod unified_type_comparator;
31
32pub mod cli_file_utils;
34pub mod cli_output;
35pub mod cli_parallel;
36
37pub use apted::{compute_edit_distance, APTEDOptions};
38pub use enhanced_similarity::{
39 calculate_enhanced_similarity, calculate_semantic_similarity, EnhancedSimilarityOptions,
40};
41pub use function_extractor::{
42 compare_functions, extract_functions, find_similar_functions_across_files,
43 find_similar_functions_in_file, FunctionDefinition, FunctionType, SimilarityResult,
44};
45pub use parser::{ast_to_tree_node, parse_and_convert_to_tree};
46pub use tree::TreeNode;
47pub use tsed::{
48 calculate_tsed, calculate_tsed_from_code, calculate_tsed_with_threshold, TSEDOptions,
49};
50
51pub use type_comparator::{
53 compare_type_literal_with_type, compare_types, find_duplicate_types,
54 find_similar_type_literals, find_similar_type_literals_pairs, find_similar_types,
55 group_similar_types, MatchedProperty, SimilarTypePair, TypeComparisonOptions,
56 TypeComparisonResult, TypeDifferences, TypeLiteralComparisonPair, TypeMismatch,
57};
58pub use type_extractor::{
59 extract_type_literals_from_code, extract_type_literals_from_files, extract_types_from_code,
60 extract_types_from_files, PropertyDefinition, TypeDefinition, TypeKind, TypeLiteralContext,
61 TypeLiteralDefinition,
62};
63pub use type_normalizer::{
64 calculate_property_similarity, calculate_type_similarity, find_property_matches,
65 normalize_type, NormalizationOptions, NormalizedType, PropertyMatch,
66};
67pub use unified_type_comparator::{
68 find_similar_unified_types, find_similar_unified_types_structured, UnifiedType,
69 UnifiedTypeComparisonPair,
70};
71
72pub use css_structure_adapter::{CssBatchComparator, CssStructDef, CssStructureComparator};
74pub use rust_structure_adapter::{
75 RustEnumDef, RustFieldDef, RustStructDef, RustStructureComparator, RustVariantDef,
76 RustVariantType,
77};
78pub use structure_comparator::{
79 compute_structure_fingerprint, should_compare_fingerprints, ComparisonOptions,
80 MemberComparisonStrategy, MemberMatch, SourceLocation, Structure, StructureComparator,
81 StructureComparisonResult, StructureDifferences, StructureIdentifier, StructureKind,
82 StructureMember, StructureMetadata,
83};
84pub use typescript_structure_adapter::{BatchComparator, TypeScriptStructureComparator};
85
86pub use ast_fingerprint::AstFingerprint;
88pub use fast_similarity::{
89 find_similar_functions_across_files_fast, find_similar_functions_fast, FastSimilarityOptions,
90};
91
92pub use subtree_fingerprint::{
94 create_sliding_windows, detect_partial_overlaps, generate_subtree_fingerprints,
95 IndexedFunction, OverlapOptions, PartialOverlap, SubtreeFingerprint,
96};
97
98pub use overlap_detector::{
100 find_function_overlaps, find_overlaps_across_files, find_overlaps_with_similarity,
101 DetailedOverlap, PartialOverlapWithFiles,
102};
103
104pub use generic_overlap_detector::{
106 find_function_overlaps_generic, find_overlaps_across_files_generic,
107 find_overlaps_with_similarity_generic, DetailedOverlap as GenericDetailedOverlap,
108 PartialOverlapWithFiles as GenericPartialOverlapWithFiles,
109};
110
111pub use class_comparator::{
113 compare_classes, find_similar_classes, find_similar_classes_across_files, normalize_class,
114 ClassComparisonResult, ClassDifferences, MethodMismatch, NormalizedClass, PropertyMismatch,
115 SimilarClassPair,
116};
117pub use class_extractor::{
118 extract_classes_from_code, extract_classes_from_files, ClassDefinition, ClassMethod,
119 ClassProperty, MethodKind,
120};
121pub use config_loader::ConfigLoader;
122
123#[cfg(test)]
124mod structure_comparator_tests;