MockFeatureProvider

Struct MockFeatureProvider 

Source
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

Source

pub fn checkpoint(&mut self)

Validate that all current expectations for all methods have been satisfied, and discard them.

Source

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

Source

pub fn expect_initialize(&mut self) -> &mut Expectation

Create an Expectation for mocking the initialize method

Source

pub fn expect_status(&mut self) -> &mut Expectation

Create an Expectation for mocking the status method

Source

pub fn expect_metadata(&mut self) -> &mut Expectation

Create an Expectation for mocking the metadata method

Source

pub fn expect_hooks(&mut self) -> &mut Expectation

Create an Expectation for mocking the hooks method

Source

pub fn expect_resolve_bool_value(&mut self) -> &mut Expectation

Create an Expectation for mocking the resolve_bool_value method

Source

pub fn expect_resolve_int_value(&mut self) -> &mut Expectation

Create an Expectation for mocking the resolve_int_value method

Source

pub fn expect_resolve_float_value(&mut self) -> &mut Expectation

Create an Expectation for mocking the resolve_float_value method

Source

pub fn expect_resolve_string_value(&mut self) -> &mut Expectation

Create an Expectation for mocking the resolve_string_value method

Source

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

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for MockFeatureProvider

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
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.

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,

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

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

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]

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,

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,

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,

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,

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,

Resolve given flag_key as a struct value.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Source§

fn type_name(&self) -> &'static str

Source§

impl<T> AnySync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.