feat(ffi): Add webui_protocol_tokens FFI function to extract CSS token names#272
Merged
mohamedmansour merged 2 commits intomainfrom Apr 26, 2026
Merged
Conversation
Add a new C-compatible FFI function that deserializes a WebUI protocol buffer and returns the CSS token name list as a newline-delimited string. - Follows existing FFI patterns: catch_unwind, null-check, thread-local error - Returns empty string for empty token lists (not NULL) - Accepts zero-length buffers as valid empty protocol - Includes 7 integration tests covering happy paths and error cases - Header file updated with full safety documentation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mohamedmansour
previously approved these changes
Apr 24, 2026
Contributor
|
Don't we need to support the webui-node and webui-wasm as well to expose this? For it to be complete. |
Expose the CSS token extraction API across all binding surfaces for complete parity with the FFI function added earlier: - webui-node: napi function returning Vec<String> (JS string array) - webui-wasm: wasm_bindgen function returning JS array via serde Includes tests for both crates covering empty, populated, order preservation, and error cases. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Author
|
Fixed with latest update
|
mohamedmansour
approved these changes
Apr 25, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds webui_protocol_tokens — a new C-compatible FFI function that deserializes a WebUI protocol buffer and returns the CSS token name list as a
newline-delimited, heap-allocated string.
Motivation
Host languages (C#, Go, Python, C++) need to extract CSS design-token names from a compiled WebUI protocol without reaching into Rust internals. This
provides a safe, zero-dependency FFI entry point for that use case.
API contract
Caller must free the returned string with webui_free.
Changes
CString ownership transfer).