Adds a helper From<T> impl for basic HxResponseTrigger* variants.

This is purely to help make the public API more friendly and less verbose.
This commit is contained in:
Rob Wagner 2023-10-24 00:26:31 -04:00
parent 35aa41f5ba
commit 36df71fb2f
No known key found for this signature in database
GPG key ID: 53CCB4497B15CF61

View file

@ -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;