pub struct MockFeatureProvider { /* private fields */ }
Expand description
This trait defines interfaces that Provider Authors can use to abstract a particular flag management system, thus enabling the use of the evaluation API by Application Authors.
Providers are the “translator” between the flag evaluation calls made in application code, and the flag management system that stores flags and in some cases evaluates flags. At a minimum, providers should implement some basic evaluation methods which return flag values of the expected type. In addition, providers may transform the evaluation context appropriately in order to be used in dynamic evaluation of their associated flag management system, provide insight into why evaluation proceeded the way it did, and expose configuration options for their associated flag management system. Hypothetical provider implementations might wrap a vendor SDK, embed an REST client, or read flags from a local file.
See the spec.
Implementations§
Source§impl MockFeatureProvider
impl MockFeatureProvider
Sourcepub fn checkpoint(&mut self)
pub fn checkpoint(&mut self)
Validate that all current expectations for all methods have been satisfied, and discard them.
Sourcepub fn new() -> Self
pub fn new() -> Self
Create a new mock object with no expectations.
This method will not be generated if the real struct
already has a new
method. However, it will be
generated if the struct implements a trait with a new
method. The trait’s new
method can still be called
like <MockX as TraitY>::new
Source§impl MockFeatureProvider
impl MockFeatureProvider
Sourcepub fn expect_initialize(&mut self) -> &mut Expectation
pub fn expect_initialize(&mut self) -> &mut Expectation
Create an Expectation
for mocking the initialize
method
Sourcepub fn expect_status(&mut self) -> &mut Expectation
pub fn expect_status(&mut self) -> &mut Expectation
Create an Expectation
for mocking the status
method
Sourcepub fn expect_metadata(&mut self) -> &mut Expectation
pub fn expect_metadata(&mut self) -> &mut Expectation
Create an Expectation
for mocking the metadata
method
Sourcepub fn expect_hooks(&mut self) -> &mut Expectation
pub fn expect_hooks(&mut self) -> &mut Expectation
Create an Expectation
for mocking the hooks
method
Sourcepub fn expect_resolve_bool_value(&mut self) -> &mut Expectation
pub fn expect_resolve_bool_value(&mut self) -> &mut Expectation
Create an Expectation
for mocking the resolve_bool_value
method
Sourcepub fn expect_resolve_int_value(&mut self) -> &mut Expectation
pub fn expect_resolve_int_value(&mut self) -> &mut Expectation
Create an Expectation
for mocking the resolve_int_value
method
Sourcepub fn expect_resolve_float_value(&mut self) -> &mut Expectation
pub fn expect_resolve_float_value(&mut self) -> &mut Expectation
Create an Expectation
for mocking the resolve_float_value
method
Sourcepub fn expect_resolve_string_value(&mut self) -> &mut Expectation
pub fn expect_resolve_string_value(&mut self) -> &mut Expectation
Create an Expectation
for mocking the resolve_string_value
method
Sourcepub fn expect_resolve_struct_value(&mut self) -> &mut Expectation
pub fn expect_resolve_struct_value(&mut self) -> &mut Expectation
Create an Expectation
for mocking the resolve_struct_value
method
Trait Implementations§
Source§impl Debug for MockFeatureProvider
impl Debug for MockFeatureProvider
Source§impl Default for MockFeatureProvider
impl Default for MockFeatureProvider
Source§impl FeatureProvider for MockFeatureProvider
This trait defines interfaces that Provider Authors can use to abstract a particular flag
management system, thus enabling the use of the evaluation API by Application Authors.
impl FeatureProvider for MockFeatureProvider
This trait defines interfaces that Provider Authors can use to abstract a particular flag management system, thus enabling the use of the evaluation API by Application Authors.
Providers are the “translator” between the flag evaluation calls made in application code, and the flag management system that stores flags and in some cases evaluates flags. At a minimum, providers should implement some basic evaluation methods which return flag values of the expected type. In addition, providers may transform the evaluation context appropriately in order to be used in dynamic evaluation of their associated flag management system, provide insight into why evaluation proceeded the way it did, and expose configuration options for their associated flag management system. Hypothetical provider implementations might wrap a vendor SDK, embed an REST client, or read flags from a local file.
See the spec.
Source§fn initialize<'life0, 'life1, 'async_trait>(
&'life0 mut self,
context: &'life1 EvaluationContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 mut self,
context: &'life1 EvaluationContext,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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.
Note the following rules:
- The provider MUST set its status field/accessor to READY if its initialize function terminates normally.
- The provider MUST set its status field to ERROR if its initialize function terminates abnormally.
- The provider SHOULD indicate an error if flag resolution is attempted before the provider is ready.
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.
Providers without this field can be assumed to be ready immediately.
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 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.
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.