File tree Expand file tree Collapse file tree 6 files changed +57
-17
lines changed
Tests/DIContainerTests/Tests Expand file tree Collapse file tree 6 files changed +57
-17
lines changed Original file line number Diff line number Diff line change @@ -12,11 +12,17 @@ public protocol AutoModulable: AnyObject {
1212 associatedtype ModuleKeyType : InjectionKeyType
1313}
1414
15- public typealias AutoModule = AutoModuleBase & AutoModulable
15+ public typealias AutoModule = AutoModulable & AutoModuleBase
1616
1717#if DEBUG
18+ extension AutoModulable where Self: AutoModuleBase {
19+ static var module : Module ? {
20+ Self ( ) . module
21+ }
22+ }
23+
1824extension AutoModulable {
19- var module : Module ? {
25+ private var module : Module ? {
2026 guard
2127 let instance = self as? ModuleKeyType . Value ,
2228 let autoModuleBase = instance as? AutoModuleBase
Original file line number Diff line number Diff line change @@ -9,22 +9,29 @@ public struct Module: Hashable {
99 _ keyType: T . Type ,
1010 _ resolve: @escaping ( ) -> U
1111 ) where T. Value == U {
12- name = KeyName ( keyType) . name
13- self . resolve = resolve
12+ let name = KeyName ( keyType) . name
13+ self . init ( name : name , resolve: resolve )
1414 }
1515
1616 public init < T: AutoModule > ( _ moduleType: T . Type ) {
17- name = KeyName ( moduleType. ModuleKeyType. self) . name
18- resolve = {
17+ let name = KeyName ( moduleType. ModuleKeyType. self) . name
18+ self . init ( name : name , resolve : {
1919 moduleType. init ( )
20- }
20+ } )
21+ }
22+
23+ init ( name: String , resolve: @escaping ( ) -> Any ) {
24+ self . name = name
25+ self . resolve = resolve
2126 }
27+ }
2228
23- public static func == ( lhs: Module , rhs: Module ) -> Bool {
29+ public extension Module {
30+ static func == ( lhs: Module , rhs: Module ) -> Bool {
2431 lhs. name == rhs. name
2532 }
26-
27- public func hash( into hasher: inout Hasher ) {
33+
34+ func hash( into hasher: inout Hasher ) {
2835 hasher. combine ( name)
2936 }
3037}
File renamed without changes.
Original file line number Diff line number Diff line change 11//
2- // machOLoader .swift
2+ // MachOLoader .swift
33// DIContainer
44//
55// Created by minsOne on 12/10/24.
@@ -60,7 +60,7 @@ public extension MachOLoader {
6060
6161 var scanModuleList : [ Module ] {
6262 scanModuleTypeList
63- . compactMap { ( $0 as? any AutoModule . Type) ? . init ( ) . module }
63+ . compactMap { ( $0 as? any AutoModule . Type) ? . module }
6464 }
6565}
6666
Original file line number Diff line number Diff line change @@ -81,7 +81,7 @@ public struct ModuleScanner {
8181
8282 let start = Date ( )
8383 let ( firstIndex, lastIndex) = ( 0 , numberOfClasses)
84- var ( keys , ptrIndex) = ( [ any AutoModulable . Type ] ( ) , [ Int] ( ) )
84+ var ( modules , ptrIndex) = ( [ any AutoModulable . Type ] ( ) , [ Int] ( ) )
8585 let superCls = AutoModuleBase . self
8686
8787// MARK: Case 1 - class_getSuperclass
@@ -90,7 +90,7 @@ public struct ModuleScanner {
9090 if class_getSuperclass ( cls) == superCls,
9191 case let kcls as any AutoModulable . Type = cls {
9292 ptrIndex. append ( i)
93- keys . append ( kcls)
93+ modules . append ( kcls)
9494 }
9595 }
9696
@@ -119,16 +119,16 @@ public struct ModuleScanner {
119119 │ numberOfClasses : \( numberOfClasses)
120120 │ InjectionKey classPtr Index List : \( ptrIndex)
121121 │ AutoModule List :
122- │ - \( keys )
122+ │ - \( modules )
123123 └────────────────────────────────────────────────
124124 """ )
125125
126- return keys
126+ return modules
127127 }
128128
129129 public var scanModuleList : [ Module ] {
130130 scanModuleTypeList
131- . compactMap { ( $0 as? any AutoModule . Type) ? . init ( ) . module }
131+ . compactMap { ( $0 as? any AutoModule . Type) ? . module }
132132 }
133133}
134134#endif
Original file line number Diff line number Diff line change 1+ //
2+ // KeyNameTests.swift
3+ // DIContainer
4+ //
5+ // Created by minsOne on 1/26/25.
6+ //
7+
8+ import Testing
9+
10+ @testable import DIContainer
11+
12+ @Suite ( . serialized)
13+ struct KeyNameTests {
14+ @Test
15+ func compare( ) {
16+ let lhs = KeyName ( NestedType . NestedTypeServiceKey. self)
17+ let rhs = KeyName ( NestedTypeServiceKey . self)
18+
19+ #expect( lhs. name != rhs. name)
20+ }
21+ }
22+
23+ enum NestedType {
24+ class NestedTypeServiceKey { }
25+ }
26+
27+ class NestedTypeServiceKey { }
You can’t perform that action at this time.
0 commit comments