statsig_rust/networking/providers/
mod.rs1pub use net_provider_global::NetworkProviderGlobal;
2
3use super::NetworkProvider;
4use net_provider_noop::NetworkProviderNoop;
5use std::sync::{Arc, Weak};
6
7#[cfg(not(feature = "custom_network_provider"))]
8pub mod net_provider_reqwest;
9
10mod net_provider_global;
11mod net_provider_noop;
12
13lazy_static::lazy_static! {
14 static ref NOOP_NETWORK_PROVIDER: Arc<dyn NetworkProvider> = Arc::new(NetworkProviderNoop {});
15}
16
17#[cfg(not(feature = "custom_network_provider"))]
18lazy_static::lazy_static! {
19 static ref REQWEST_NETWORK_PROVIDER: Arc<dyn NetworkProvider> = Arc::new(net_provider_reqwest::NetworkProviderReqwest {});
20}
21
22#[cfg(feature = "custom_network_provider")]
23pub fn get_network_provider() -> Weak<dyn NetworkProvider> {
24 NetworkProviderGlobal::try_get().unwrap_or_else(|| Arc::downgrade(&NOOP_NETWORK_PROVIDER))
25}
26
27#[cfg(not(feature = "custom_network_provider"))]
28pub fn get_network_provider() -> Weak<dyn NetworkProvider> {
29 Arc::downgrade(&REQWEST_NETWORK_PROVIDER)
30}