You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'd like to propose a macros feature in addition to HxBoosted extractor.
Currently with axum-htmx we use HxBoosted like this:
async fn get_index(HxBoosted(boosted): HxBoosted) -> impl IntoResponse {
if boosted {
// Send a template extending from _partial.html
} else {
// Send a template extending from _base.html
}
}
I propose to add a macro, then it will be:
#[hx_boosted_by(with_layout)]
async fn get_index() -> Html<String> {
// some impl here
// <-- page html -->
}
fn with_layout(Html(html): Html<String>) -> Html<String> {
// Wrap page html into layout if called
}
What this macro does is transforming that function to:
async fn get_index(HxBoosted(boosted): HxBoosted) -> Html<String> {
// some impl here
if boosted {
// <-- page html -->
} else {
// <-- with_layout(page html) -->
}
}
I don't have much experience with Rust but managed to write something close to that macro in this axum-htmx-derive repo. Didn't publish yet, don't think it requires separate package - but needs to be included in axum-htmx (with feature flag).
Currently it has 2 macros: hx_boosted_by and hx_boosted_by_async - if you have any idea on how it can be merged I'm here :)
Let me know what you think.
The text was updated successfully, but these errors were encountered:
I'm okay with this. I think reducing the boilerplate is worth the additional complexity and I'm willing to maintain it long-term. It fits within the spirit of the library.
Are you interested in starting a draft PR for this here? I imagine that most of your downstream work should be generally transferrable, though I haven't had a chance to look through your repo yet.
Hi!
I'd like to propose a macros feature in addition to
HxBoosted
extractor.Currently with axum-htmx we use
HxBoosted
like this:I propose to add a macro, then it will be:
What this macro does is transforming that function to:
I don't have much experience with Rust but managed to write something close to that macro in this axum-htmx-derive repo. Didn't publish yet, don't think it requires separate package - but needs to be included in axum-htmx (with feature flag).
Currently it has 2 macros:
hx_boosted_by
andhx_boosted_by_async
- if you have any idea on how it can be merged I'm here :)Let me know what you think.
The text was updated successfully, but these errors were encountered: