1use std::sync::Arc;
2
3use crate::{CryptoError, RTCCryptoProvider};
4
5pub fn default_provider() -> Result<Arc<dyn RTCCryptoProvider>, CryptoError> {
10 #[cfg(feature = "crypto-ring")]
11 {
12 Ok(Arc::new(crate::providers::RingProvider::new()))
13 }
14
15 #[cfg(all(not(feature = "crypto-ring"), feature = "crypto-aws-lc-rs"))]
16 {
17 Ok(Arc::new(crate::providers::AwsLcRsProvider::new()))
18 }
19
20 #[cfg(not(any(feature = "crypto-ring", feature = "crypto-aws-lc-rs")))]
21 {
22 Err(CryptoError::NoDefaultProvider)
23 }
24}