Skip to content

Commit 299d0f3

Browse files
committed
refactor: [#1411] extract static methods in AppContainer
1 parent ef5dc32 commit 299d0f3

1 file changed

Lines changed: 55 additions & 32 deletions

File tree

src/container.rs

Lines changed: 55 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -54,45 +54,20 @@ impl AppContainer {
5454

5555
let http_tracker_core_services = HttpTrackerCoreServices::initialize_from(&tracker_core_container);
5656

57-
let mut http_tracker_instance_containers = HashMap::new();
58-
59-
if let Some(http_trackers) = &configuration.http_trackers {
60-
for http_tracker_config in http_trackers {
61-
http_tracker_instance_containers.insert(
62-
http_tracker_config.bind_address,
63-
HttpTrackerCoreContainer::initialize_from_services(
64-
&tracker_core_container,
65-
&http_tracker_core_services,
66-
&Arc::new(http_tracker_config.clone()),
67-
),
68-
);
69-
}
70-
}
71-
72-
let http_tracker_instance_containers = Arc::new(http_tracker_instance_containers);
57+
let http_tracker_instance_containers = Self::initialize_http_tracker_instance_containers(
58+
configuration,
59+
&tracker_core_container,
60+
&http_tracker_core_services,
61+
);
7362

7463
// UDP
7564

7665
let udp_tracker_core_services = UdpTrackerCoreServices::initialize_from(&tracker_core_container);
7766

7867
let udp_tracker_server_container = UdpTrackerServerContainer::initialize(&core_config);
7968

80-
let mut udp_tracker_instance_containers = HashMap::new();
81-
82-
if let Some(udp_trackers) = &configuration.udp_trackers {
83-
for udp_tracker_config in udp_trackers {
84-
udp_tracker_instance_containers.insert(
85-
udp_tracker_config.bind_address,
86-
UdpTrackerCoreContainer::initialize_from_services(
87-
&tracker_core_container,
88-
&udp_tracker_core_services,
89-
&Arc::new(udp_tracker_config.clone()),
90-
),
91-
);
92-
}
93-
}
94-
95-
let udp_tracker_instance_containers = Arc::new(udp_tracker_instance_containers);
69+
let udp_tracker_instance_containers =
70+
Self::initialize_udp_tracker_instance_containers(configuration, &tracker_core_container, &udp_tracker_core_services);
9671

9772
AppContainer {
9873
// Configuration
@@ -151,4 +126,52 @@ impl AppContainer {
151126
}
152127
.into()
153128
}
129+
130+
#[must_use]
131+
fn initialize_http_tracker_instance_containers(
132+
configuration: &Configuration,
133+
tracker_core_container: &Arc<TrackerCoreContainer>,
134+
http_tracker_core_services: &Arc<HttpTrackerCoreServices>,
135+
) -> Arc<HashMap<SocketAddr, Arc<HttpTrackerCoreContainer>>> {
136+
let mut http_tracker_instance_containers = HashMap::new();
137+
138+
if let Some(http_trackers) = &configuration.http_trackers {
139+
for http_tracker_config in http_trackers {
140+
http_tracker_instance_containers.insert(
141+
http_tracker_config.bind_address,
142+
HttpTrackerCoreContainer::initialize_from_services(
143+
tracker_core_container,
144+
http_tracker_core_services,
145+
&Arc::new(http_tracker_config.clone()),
146+
),
147+
);
148+
}
149+
}
150+
151+
Arc::new(http_tracker_instance_containers)
152+
}
153+
154+
#[must_use]
155+
fn initialize_udp_tracker_instance_containers(
156+
configuration: &Configuration,
157+
tracker_core_container: &Arc<TrackerCoreContainer>,
158+
udp_tracker_core_services: &Arc<UdpTrackerCoreServices>,
159+
) -> Arc<HashMap<SocketAddr, Arc<UdpTrackerCoreContainer>>> {
160+
let mut udp_tracker_instance_containers = HashMap::new();
161+
162+
if let Some(udp_trackers) = &configuration.udp_trackers {
163+
for udp_tracker_config in udp_trackers {
164+
udp_tracker_instance_containers.insert(
165+
udp_tracker_config.bind_address,
166+
UdpTrackerCoreContainer::initialize_from_services(
167+
tracker_core_container,
168+
udp_tracker_core_services,
169+
&Arc::new(udp_tracker_config.clone()),
170+
),
171+
);
172+
}
173+
}
174+
175+
Arc::new(udp_tracker_instance_containers)
176+
}
154177
}

0 commit comments

Comments
 (0)