Skip to content

refactor(request): simplify multipart body extraction#510

Merged
0x676e67 merged 1 commit intomainfrom
ref
Feb 12, 2026
Merged

refactor(request): simplify multipart body extraction#510
0x676e67 merged 1 commit intomainfrom
ref

Conversation

@0x676e67
Copy link
Copy Markdown
Owner

No description provided.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying rnet with  Cloudflare Pages  Cloudflare Pages

Latest commit: b3bf123
Status: ✅  Deploy successful!
Preview URL: https://86272d11.rnet-7tt.pages.dev
Branch Preview URL: https://ref.rnet-7tt.pages.dev

View logs

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @0x676e67, 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 refactors the handling of multipart request bodies by simplifying the Multipart struct's internal representation and its extraction logic. It removes an unnecessary Extractor wrapper, leading to a more direct and efficient integration with the wreq library's multipart forms. Additionally, minor display formatting and inline optimizations were applied to WebSocket-related code.

Highlights

  • Simplified Multipart Handling: The Multipart struct now directly manages the wreq::multipart::Form, removing an intermediate Option wrapper and streamlining its usage.
  • Direct Multipart Extraction: A FromPyObject implementation was added to the Multipart struct, allowing direct extraction of the underlying wreq::multipart::Form when converting from Python objects.
  • Removed Extractor for Multipart: The Extractor wrapper for wreq::multipart::Form was removed, as its functionality is now integrated directly into the Multipart struct, simplifying the overall architecture.
  • Minor WebSocket Display Improvements: Small formatting adjustments and #[inline] annotations were applied to the Display and From implementations for WebSocket and BlockingWebSocket for minor optimization and consistency.
Changelog
  • src/client/body/multipart.rs
    • Updated the Multipart struct to directly hold wreq::multipart::Form.
    • Implemented FromPyObject for Multipart to enable direct extraction of the underlying form.
  • src/client/req.rs
    • Modified the Request struct's multipart field to directly use the Multipart type.
    • Adjusted the apply_option! macro usage for multipart forms to correctly extract the inner form.
  • src/client/resp/ws.rs
    • Refined the Display implementation for WebSocket by removing a trailing comma.
    • Added #[inline] attributes to the from and fmt implementations for BlockingWebSocket and simplified its Display implementation to delegate to WebSocket's formatter.
  • src/extractor.rs
    • Removed the FromPyObject implementation for Extractor<wreq::multipart::Form>.
    • Cleaned up unused imports related to Multipart and Error.
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.

Copy link
Copy Markdown
Contributor

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

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 refactors how multipart bodies are handled, simplifying the extraction logic by moving it from a generic Extractor to a specific FromPyObject implementation for the Multipart type. This is a good improvement that makes the code cleaner and better organized. I have one suggestion to improve the clarity of the new extraction logic.

@0x676e67 0x676e67 merged commit 8ccacb2 into main Feb 12, 2026
33 checks passed
@0x676e67 0x676e67 deleted the ref branch February 12, 2026 01:22
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.

1 participant