11use async_trait:: async_trait;
22use open_feature:: {
3- provider:: { FeatureProvider , ProviderMetadata , ResolutionDetails } ,
43 EvaluationContext , EvaluationError , EvaluationErrorCode , EvaluationReason , EvaluationResult ,
54 StructValue ,
5+ provider:: { FeatureProvider , ProviderMetadata , ResolutionDetails } ,
66} ;
77/// Environment Variables Provider Metadata
88const METADATA : & str = "Environment Variables Provider" ;
@@ -51,13 +51,15 @@ impl FeatureProvider for EnvVarProvider {
5151 /// A logical true or false, as represented idiomatically in the implementation languages.
5252 ///
5353 /// # Example
54- /// ```rust
54+ /// ```rust,no_run
55+ /// // Note: This example uses temp_env for safe env var handling
56+ /// use temp_env;
5557 /// #[tokio::test]
5658 /// async fn test_resolve_string_value() {
5759 /// let provider = EnvVarProvider::default();
5860 /// let flag_key = "TEST_ENV_VAR";
5961 /// let value = "false";
60- /// std::env::set_var (flag_key, value);
62+ /// temp_env::with_var (flag_key, Some( value), || {} );
6163 ///
6264 /// let res = provider
6365 /// .resolve_string_value(flag_key, &EvaluationContext::default())
@@ -76,13 +78,15 @@ impl FeatureProvider for EnvVarProvider {
7678
7779 /// The 64-bit signed integer type.
7880 /// # Example
79- /// ```rust
81+ /// ```rust,no_run
82+ /// // Note: This example uses temp_env for safe env var handling
83+ /// use temp_env;
8084 /// #[tokio::test]
8185 /// async fn test_resolve_int_value() {
8286 /// let flag_key = "TEST_INT_ENV_VAR";
8387 /// let flag_value = i64::MAX.to_string();
8488 /// let provider = EnvVarProvider::default();
85- /// std::env::set_var (flag_key, &flag_value);
89+ /// temp_env::with_var (flag_key, Some( &flag_value), || {} );
8690 /// let result = provider.resolve_int_value(flag_key, &EvaluationContext::default()).await;
8791 /// assert!(result.is_ok());
8892 /// assert_eq!(result.unwrap().value, flag_value.parse::<i64>().unwrap());
@@ -106,7 +110,8 @@ impl FeatureProvider for EnvVarProvider {
106110 /// let flag_value = std::f64::consts::PI.to_string();
107111 /// let provider = EnvVarProvider::default();
108112 ///
109- /// std::env::set_var(flag_key, &flag_value);
113+ /// // Note: This example uses temp_env for safe env var handling
114+ /// temp_env::with_var(flag_key, Some(&flag_value), || {});
110115 ///
111116 /// let result = provider
112117 /// .resolve_float_value(flag_key, &EvaluationContext::default())
@@ -125,13 +130,15 @@ impl FeatureProvider for EnvVarProvider {
125130
126131 /// A UTF-8 encoded string.
127132 /// # Example
128- /// ```rust
133+ /// ```rust,no_run
134+ /// // Note: This example uses temp_env for safe env var handling
135+ /// use temp_env;
129136 /// #[tokio::test]
130137 /// async fn test_resolve_string_value() {
131138 /// let provider = EnvVarProvider::default();
132139 /// let flag_key = "TEST_ENV_VAR";
133140 /// let value = "flag_value";
134- /// std::env::set_var (flag_key, value);
141+ /// temp_env::with_var (flag_key, Some( value), || {} );
135142 ///
136143 /// let res = provider
137144 /// .resolve_string_value(flag_key, &EvaluationContext::default())
0 commit comments