-
Notifications
You must be signed in to change notification settings - Fork 15
[FFL-1284] Create datadog-ffe-ffi crate #1282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
sameerank
wants to merge
51
commits into
main
Choose a base branch
from
sameerank/FFL-1284-Create-datadog-ffe-ffi-crate
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
a0e4bff
Add FFI bindings for datadog-ffe
sameerank 96c3e15
Fix missing newlines at ends of files
sameerank 37764b0
Fix Rust formatting issues in datadog-ffe-ffi
sameerank c927269
Remove unused NULL_POINTER_ERROR constant from error.rs
sameerank dfc60e3
Fix formatting in assignment.rs by removing trailing whitespace from …
sameerank 5dfbd46
Update LICENSE-3rdparty.yml to include datadog-ffe-ffi
sameerank 911cf1f
Add datadog-ffe-ffi Cargo.toml to Dockerfile.build
sameerank 47e0a5c
Set datadog-ffe-ffi version to 0.1.0 to match pre-release status
sameerank 168718a
Update Cargo.lock
sameerank 43ec366
Refactor build script and cbindgen configuration
sameerank a3c6612
Update CODEOWNERS to include datadog-ffe-ffi and team
sameerank 10298cb
Update datadog-ffe-ffi/Cargo.toml
sameerank c453cb9
refactor(ffe): simplify error handling (#1285)
dd-oleksii 1e0586a
Replace single-attribute constructor with multi-attribute API
sameerank 2fcf32b
Remove unnecessary whitespace in evaluation_context.rs
sameerank 7b7af45
Fix documentation formatting in evaluation_context.rs
sameerank 2d11e90
Fix Cargo.toml
sameerank 7a7d500
Prevent malloc error in drop functions
sameerank 006b709
Update drop functions to simplify error handling
sameerank 2f1c2ff
Refactor EvaluationContext API
sameerank 2d4e32d
Merge branch 'main' into sameerank/FFL-1284-Create-datadog-ffe-ffi-crate
sameerank 8a462e1
[ffe] add pyo3 conversion methods
dd-oleksii b4f03b9
[ffe] Remove unused errors
dd-oleksii 44f5f49
[ffe] step back and remove IntoPyObject types
dd-oleksii 466bafa
Revert "test(ffe): run sdk tests individually (#1273)"
dd-oleksii 572804b
[ffe] Expose EvaluationFailure
dd-oleksii 750dcec
[ffe] remove support for JSON:API
dd-oleksii f8da08b
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii dad6a08
[ffe] fix clippy
dd-oleksii 36fe6be
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii b2481f0
Update datadog-ffe-ffi/src/evaluation_context.rs
sameerank f49b07f
Lint fix
sameerank 3ee6f4b
Replace Assignment with ResolutionDetails structure
sameerank 61582eb
Replace AssignmentValue with C-compatible value representation
sameerank 8314d12
Add error mapping for ResolutionDetails error handling
sameerank b3321aa
Lint fixes
sameerank 95a04fe
Clippy fixes
sameerank 6b94369
refactor(ffe): merge EvaluationError and EvalutionFailure into one type
dd-oleksii c0fae17
Merge remote-tracking branch 'origin/ffe-pyo3-methods' into HEAD
dd-oleksii b360449
feat: handle non-string attributes
dd-oleksii 7afa96b
feat(ffe): adding accessors for ResolutionDetails
dd-oleksii bccc283
feat(ffe): preserve json raw value
dd-oleksii 99e02e5
datadog-ffe-ffi: finish assignment getters
dd-oleksii f98114e
add missing license header
dd-oleksii 56c362f
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii 0be43f1
fix tests
dd-oleksii 080057f
fix parsing RawValue through TryParse
dd-oleksii 87523cb
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii b032372
feat: support multiple/number expected flag type
dd-oleksii 40e1b99
Merge remote-tracking branch 'origin/main' into HEAD
dd-oleksii e290eb7
merge main
dd-oleksii File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| # Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/ | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| [package] | ||
| name = "datadog-ffe-ffi" | ||
| edition.workspace = true | ||
| version = "0.1.0" | ||
dd-oleksii marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| rust-version.workspace = true | ||
| license.workspace = true | ||
|
|
||
| [lib] | ||
| crate-type = ["lib", "staticlib", "cdylib"] | ||
sameerank marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| bench = false | ||
|
|
||
| [features] | ||
| default = ["cbindgen"] | ||
| cbindgen = ["build_common/cbindgen", "ddcommon-ffi/cbindgen"] | ||
|
|
||
| [build-dependencies] | ||
| build_common = { path = "../build-common" } | ||
|
|
||
| [dependencies] | ||
| anyhow = "1.0.93" | ||
| datadog-ffe = { path = "../datadog-ffe", version = "=0.1.0" } | ||
| ddcommon-ffi = { path = "../ddcommon-ffi", default-features = false } | ||
| function_name = "0.3.0" | ||
|
|
||
| [dev-dependencies] | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| // Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/ | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
| extern crate build_common; | ||
|
|
||
| use build_common::generate_and_configure_header; | ||
|
|
||
| fn main() { | ||
| println!("cargo:rerun-if-changed=src/*"); | ||
| let header_name = "datadog_ffe.h"; | ||
| generate_and_configure_header(header_name); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| # Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/ | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
|
|
||
| language = "C" | ||
| cpp_compat = true | ||
| tab_width = 2 | ||
| header = """// Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/ | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
| """ | ||
| include_guard = "DDOG_FFE_H" | ||
| style = "tag" | ||
| usize_is_size_t = true | ||
| pragma_once = true | ||
|
|
||
| no_includes = true | ||
| sys_includes = ["stdbool.h", "stddef.h", "stdint.h"] | ||
| includes = ["common.h"] | ||
|
|
||
| [export] | ||
| include = ["datadog-ffe-ffi"] | ||
| prefix = "ddog_ffe_" | ||
| renaming_overrides_prefixing = true | ||
|
|
||
| [export.rename] | ||
| "VoidResult" = "ddog_VoidResult" | ||
| "Error" = "ddog_Error" | ||
| "Vec_u8" = "ddog_Vec_U8" | ||
|
|
||
| [export.mangle] | ||
| rename_types = "PascalCase" | ||
|
|
||
| [enum] | ||
| prefix_with_name = true | ||
| rename_variants = "ScreamingSnakeCase" | ||
|
|
||
| [fn] | ||
| must_use = "DDOG_CHECK_RETURN" | ||
|
|
||
| [parse] | ||
| parse_deps = true | ||
| include = ["ddcommon-ffi", "datadog-ffe"] |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.