Skip to content

In memory provider#68

Merged
NeaguGeorgiana23 merged 5 commits into
mainfrom
in_memory_provider
Feb 19, 2026
Merged

In memory provider#68
NeaguGeorgiana23 merged 5 commits into
mainfrom
in_memory_provider

Conversation

@NeaguGeorgiana23

Copy link
Copy Markdown
Contributor

This PR

Updates the in_memory_provider to implement flag evaluation for all types of flags (e.g. bool, string, number, object)

Related issue

Fix: #63

Signed-off-by: NeaguGeorgiana23 <neagugeorgiana@google.com>
Signed-off-by: NeaguGeorgiana23 <neagugeorgiana@google.com>
Signed-off-by: NeaguGeorgiana23 <neagugeorgiana@google.com>
Signed-off-by: NeaguGeorgiana23 <neagugeorgiana@google.com>
@NeaguGeorgiana23 NeaguGeorgiana23 requested review from a team as code owners February 19, 2026 13:37
@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello @NeaguGeorgiana23, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the in_memory_provider by extending its capabilities to evaluate various data types for feature flags. Previously limited to boolean flags, the provider can now handle string, integer, double, and object types, making it a more versatile tool for local development and testing of feature flags. This change broadens the utility of the in-memory provider to align with diverse application requirements.

Highlights

  • Expanded Flag Evaluation: The in_memory_provider now supports evaluation for string, integer, double, and object flag types, in addition to boolean flags.
  • Generic Flag Creation Helper: The test suite's CreateBoolFlag helper was refactored into a generic CreateFlag<T> template to support creating flags of any type.
  • New Test Coverage: Comprehensive unit tests were added to verify the correct evaluation of string, integer, double, and object flags within the InMemoryProvider.
Changelog
  • openfeature/memory_provider/BUILD
    • Added a dependency on //openfeature:value to support the new flag types.
  • openfeature/memory_provider/in_memory_provider.cpp
    • Implemented GetStringEvaluation to resolve string flags.
    • Implemented GetIntegerEvaluation to resolve integer flags.
    • Implemented GetDoubleEvaluation to resolve double flags.
    • Implemented GetObjectEvaluation to resolve object flags.
  • openfeature/memory_provider/in_memory_provider.h
    • Included openfeature/value.h to support object flag types.
    • Declared new virtual methods for GetStringEvaluation, GetIntegerEvaluation, GetDoubleEvaluation, and GetObjectEvaluation in the InMemoryProvider class.
  • test/memory_provider/in_memory_provider_test.cpp
    • Included openfeature/value.h for object flag testing.
    • Refactored CreateBoolFlag into a generic CreateFlag<T> template to simplify flag creation for various types.
    • Updated existing tests to use the new CreateFlag<bool> template.
    • Added new test cases for StringEvaluationSuccess, IntegerEvaluationSuccess, DoubleEvaluationSuccess, and ObjectEvaluationSuccess.
Activity
  • No human activity has occurred on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@NeaguGeorgiana23 NeaguGeorgiana23 merged commit 3b805aa into main Feb 19, 2026
2 checks passed

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request successfully extends the InMemoryProvider to support flag evaluation for string, integer, double, and object types, in addition to boolean flags. The implementation is clean, leveraging the existing templated Evaluate method. The refactoring of the test helper CreateBoolFlag into a generic CreateFlag<T> is a good improvement for test maintainability and reusability. Comprehensive test cases have been added for the new evaluation types, ensuring correctness. Overall, the changes are well-executed and align with the stated objective of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extend SDK

1 participant