mirror of
https://github.com/robertwayne/axum-htmx
synced 2024-11-29 22:54:32 +01:00
Merge pull request #6 from robertwayne/axum-0.7
Migrate main to axum 0.7 instead of the unstable git branch
This commit is contained in:
commit
c546f23fd0
4 changed files with 37 additions and 15 deletions
|
@ -1,5 +1,11 @@
|
|||
# Changelog
|
||||
|
||||
## v0.5.0
|
||||
|
||||
- Add `From` impls for `HxResponseTrigger`, `HxResponseTriggerAfterSettle`, and
|
||||
`HxResponseTriggerAfterSwap`, allowing them to take any iterator where `T:
|
||||
Into<String>`.
|
||||
|
||||
## v0.4.0
|
||||
|
||||
- Added support for all [htmx response
|
||||
|
|
|
@ -16,7 +16,7 @@ guards = ["tower", "futures-core", "pin-project-lite"]
|
|||
serde = ["dep:serde", "dep:serde_json"]
|
||||
|
||||
[dependencies]
|
||||
axum = { git = "https://github.com/tokio-rs/axum", branch = "main", default-features = false }
|
||||
axum = { version = "0.7", default-features = false }
|
||||
|
||||
# Optional dependencies required for the `guards` feature.
|
||||
tower = { version = "0.4", default-features = false, optional = true }
|
||||
|
|
14
README.md
14
README.md
|
@ -38,15 +38,6 @@
|
|||
|
||||
Simply run `cargo add axum-htmx` to add the library to your project.
|
||||
|
||||
If you are using the unreleased branch of `axum` from GitHub, you can build
|
||||
against the `main` version of `axum-htmx` by adding the following to your
|
||||
`Cargo.toml`:
|
||||
|
||||
```toml
|
||||
[dependencies]
|
||||
axum-htmx = { git = "https://github.com/robertwayne/axum-htmx" }
|
||||
```
|
||||
|
||||
## Extractors
|
||||
|
||||
All of the [htmx request headers](https://htmx.org/reference/#request_headers)
|
||||
|
@ -155,7 +146,8 @@ async fn index() -> (&'static str, HxResponseTrigger) {
|
|||
can use via the `serde` feature flag and the `HxEvent` type.
|
||||
|
||||
```rust
|
||||
use axum_htmx::HxEvent;
|
||||
use axum_htmx::serde::HxEvent;
|
||||
use serde_json::json;
|
||||
|
||||
// Note that we are using `HxResponseTrigger` from the `axum_htmx::serde` module
|
||||
// instead of the root module.
|
||||
|
@ -171,7 +163,7 @@ async fn index() -> (&'static str, HxResponseTrigger) {
|
|||
)
|
||||
.unwrap();
|
||||
|
||||
("Hello, world!", HxResponseTrigger(event))
|
||||
("Hello, world!", HxResponseTrigger(vec![event]))
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -220,9 +220,13 @@ impl IntoResponseParts for HxReselect {
|
|||
#[derive(Debug, Clone)]
|
||||
pub struct HxResponseTrigger(pub Vec<String>);
|
||||
|
||||
impl HxResponseTrigger {
|
||||
pub fn new(events: &[&str]) -> Self {
|
||||
Self(events.iter().map(|e| e.to_string()).collect())
|
||||
impl<T> From<T> for HxResponseTrigger
|
||||
where
|
||||
T: IntoIterator,
|
||||
T::Item: ToString,
|
||||
{
|
||||
fn from(value: T) -> Self {
|
||||
Self(value.into_iter().map(|s| s.to_string()).collect())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -258,6 +262,16 @@ impl IntoResponseParts for HxResponseTrigger {
|
|||
#[derive(Debug, Clone)]
|
||||
pub struct HxResponseTriggerAfterSettle(pub Vec<String>);
|
||||
|
||||
impl<T> From<T> for HxResponseTriggerAfterSettle
|
||||
where
|
||||
T: IntoIterator,
|
||||
T::Item: ToString,
|
||||
{
|
||||
fn from(value: T) -> Self {
|
||||
Self(value.into_iter().map(|s| s.to_string()).collect())
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoResponseParts for HxResponseTriggerAfterSettle {
|
||||
type Error = HxError;
|
||||
|
||||
|
@ -289,6 +303,16 @@ impl IntoResponseParts for HxResponseTriggerAfterSettle {
|
|||
#[derive(Debug, Clone)]
|
||||
pub struct HxResponseTriggerAfterSwap(pub Vec<String>);
|
||||
|
||||
impl<T> From<T> for HxResponseTriggerAfterSwap
|
||||
where
|
||||
T: IntoIterator,
|
||||
T::Item: ToString,
|
||||
{
|
||||
fn from(value: T) -> Self {
|
||||
Self(value.into_iter().map(|s| s.to_string()).collect())
|
||||
}
|
||||
}
|
||||
|
||||
impl IntoResponseParts for HxResponseTriggerAfterSwap {
|
||||
type Error = HxError;
|
||||
|
||||
|
|
Loading…
Reference in a new issue