pub struct ConfigCatProvider { /* private fields */ }
Expand description
The ConfigCat OpenFeature provider.
§Examples
use std::time::Duration;
use configcat::{Client, PollingMode};
use open_feature::OpenFeature;
use configcat_openfeature_provider::ConfigCatProvider;
#[tokio::main]
async fn main() {
// Acquire an OpenFeature API instance.
let mut api = OpenFeature::singleton_mut().await;
// Configure the ConfigCat SDK.
let configcat_client = Client::builder("sdk-key")
.polling_mode(PollingMode::AutoPoll(Duration::from_secs(60)))
.build()
.unwrap();
// Configure the provider.
api.set_provider(ConfigCatProvider::new(configcat_client)).await;
// Create a client.
let client = api.create_client();
// Evaluate a feature flag.
let is_awesome_feature_enabled = client
.get_bool_value("isAwesomeFeatureEnabled", None, None)
.await
.unwrap_or(false);
}
Implementations§
Source§impl ConfigCatProvider
impl ConfigCatProvider
Sourcepub fn new(client: Client) -> Self
pub fn new(client: Client) -> Self
The ConfigCat OpenFeature provider.
§Examples
use std::time::Duration;
use configcat::{Client, PollingMode};
use configcat_openfeature_provider::ConfigCatProvider;
let configcat_client = Client::builder("sdk-key")
.polling_mode(PollingMode::AutoPoll(Duration::from_secs(60)))
.build()
.unwrap();
let provider = ConfigCatProvider::new(configcat_client);
Trait Implementations§
Source§impl FeatureProvider for ConfigCatProvider
impl FeatureProvider for ConfigCatProvider
Source§fn metadata(&self) -> &ProviderMetadata
fn metadata(&self) -> &ProviderMetadata
The provider interface MUST define a metadata member or accessor, containing a name field
or accessor of type string, which identifies the provider implementation.
Source§fn resolve_bool_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<bool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_bool_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<bool>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve given
flag_key
as a bool value.Source§fn resolve_int_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_int_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve given
flag_key
as an i64 value.Source§fn resolve_float_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<f64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_float_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<f64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve given
flag_key
as a f64 value.Source§fn resolve_string_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_string_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve given
flag_key
as a string value.Source§fn resolve_struct_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<StructValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn resolve_struct_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
flag_key: &'life1 str,
evaluation_context: &'life2 EvaluationContext,
) -> Pin<Box<dyn Future<Output = EvaluationResult<ResolutionDetails<StructValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Resolve given
flag_key
as a struct value.Source§fn initialize<'life0, 'life1, 'async_trait>(
&'life0 mut self,
context: &'life1 EvaluationContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 mut self,
context: &'life1 EvaluationContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
The provider MAY define an initialize function which accepts the global evaluation
context as an argument and performs initialization logic relevant to the provider. Read more
Source§fn status(&self) -> ProviderStatus
fn status(&self) -> ProviderStatus
The provider MAY define a status field/accessor which indicates the readiness of the
provider, with possible values NOT_READY, READY, or ERROR. Read more
Source§fn hooks(&self) -> &[HookWrapper]
fn hooks(&self) -> &[HookWrapper]
The provider MAY define a hooks field or accessor which returns a list of hooks that
the provider supports.
Auto Trait Implementations§
impl !Freeze for ConfigCatProvider
impl !RefUnwindSafe for ConfigCatProvider
impl Send for ConfigCatProvider
impl Sync for ConfigCatProvider
impl Unpin for ConfigCatProvider
impl !UnwindSafe for ConfigCatProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more