Skip to content
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

Scope macro #3136

Open
wants to merge 42 commits into
base: master
Choose a base branch
from
Open

Scope macro #3136

wants to merge 42 commits into from

Conversation

pmd3d
Copy link

@pmd3d pmd3d commented Sep 14, 2023

PR Type

Start of adding proc macro scope feature based on issue #1709.

PR Checklist

  • Tests for the changes have been added / updated.
  • Documentation comments have been added / updated.
  • A changelog entry has been made for the appropriate packages.
  • Format code with the latest stable rustfmt.
  • (Team) Label with affected crates and semver status.

Overview

Like the project the issue referenced, I added scope proc macro that takes a path. I couldn't figure out how the rest of the features would work int he referenced project so did not implement them.

This is my first major pull request. I decided to remove non path arguments to the scope proc macro to reduce the size of this pull request assuming there may be other issues given my inexperience. Also the issue references a handler macro that I did not implement because I wasn't sure exactly if perhaps that was covered by a get macro or should be something more.

Issue #1709

For example, the scope macro together with a prefix path would be declarated before module like below.
Then, web methods in the module would get the prefix path concatenated to the path argument.

use actix_web_codegen::{scope};
#[scope("/test")]
mod scope_module {
use actix_web::{get, HttpResponse, Responder};
#[get("/test")]
pub async fn test() -> impl Responder {
// this has path /test/test
HttpResponse::Ok().finish()
}
}

@robjtede robjtede added A-codegen project: actix-web-codegen B-semver-minor labels Sep 14, 2023
@robjtede robjtede added this to the actix-web v4.5 milestone Sep 14, 2023
@robjtede robjtede requested a review from a team November 3, 2023 12:21
actix-web-codegen/src/lib.rs Outdated Show resolved Hide resolved
@robjtede robjtede removed this from the actix-web v4.5 milestone Feb 4, 2024
@pmd3d pmd3d marked this pull request as draft February 15, 2024 18:09
@pmd3d
Copy link
Author

pmd3d commented Feb 15, 2024

Converted to draft. Rust 1.72 was mentioned in changes markdown. It seems like Rust 1.72 supports adding the proc macro directly to a module so I'm going to rework this pull request to remove the const function workaround and try having the macro directly on a module.

@robjtede robjtede self-requested a review April 1, 2024 04:02
@pmd3d pmd3d marked this pull request as ready for review April 3, 2024 05:57
@pmd3d pmd3d changed the title Scope work Scope macro Apr 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-codegen project: actix-web-codegen B-semver-minor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants