Skip to content

Commit 092bd53

Browse files
committed
bump version to 0.3.1 and more event convertors
- axum: - From<[&]*> Into Event - ExecuteScript: write_as_... - rocket - From<[&]*> Into Event - ExecueScript: write_as_...
1 parent a65384b commit 092bd53

File tree

4 files changed

+114
-4
lines changed

4 files changed

+114
-4
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ license = "MIT"
1313
name = "datastar"
1414
readme = "README.md"
1515
repository = "https://github.com/starfederation/datastar-rust"
16-
version = "0.3.0"
16+
version = "0.3.1"
1717
rust-version = "1.85.0"
1818

1919
[package.metadata.docs.rs]

src/axum.rs

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use {
44
crate::{
55
consts::{self, DATASTAR_REQ_HEADER_STR},
6-
prelude::{DatastarEvent, PatchElements, PatchSignals},
6+
prelude::{DatastarEvent, ExecuteScript, PatchElements, PatchSignals},
77
},
88
axum::{
99
Json,
@@ -23,13 +23,56 @@ impl PatchElements {
2323
}
2424
}
2525

26+
impl From<PatchElements> for Event {
27+
fn from(value: PatchElements) -> Self {
28+
value.write_as_axum_sse_event()
29+
}
30+
}
31+
32+
impl From<&PatchElements> for Event {
33+
fn from(value: &PatchElements) -> Self {
34+
value.write_as_axum_sse_event()
35+
}
36+
}
37+
2638
impl PatchSignals {
2739
/// Write this [`PatchSignals`] into an Axum SSE [`Event`].
2840
pub fn write_as_axum_sse_event(&self) -> Event {
2941
self.as_datastar_event().write_as_axum_sse_event()
3042
}
3143
}
3244

45+
impl From<PatchSignals> for Event {
46+
fn from(value: PatchSignals) -> Self {
47+
value.write_as_axum_sse_event()
48+
}
49+
}
50+
51+
impl From<&PatchSignals> for Event {
52+
fn from(value: &PatchSignals) -> Self {
53+
value.write_as_axum_sse_event()
54+
}
55+
}
56+
57+
impl ExecuteScript {
58+
/// Write this [`ExecuteScript`] into an Axum SSE [`Event`].
59+
pub fn write_as_axum_sse_event(&self) -> Event {
60+
self.as_datastar_event().write_as_axum_sse_event()
61+
}
62+
}
63+
64+
impl From<ExecuteScript> for Event {
65+
fn from(value: ExecuteScript) -> Self {
66+
value.write_as_axum_sse_event()
67+
}
68+
}
69+
70+
impl From<&ExecuteScript> for Event {
71+
fn from(value: &ExecuteScript) -> Self {
72+
value.write_as_axum_sse_event()
73+
}
74+
}
75+
3376
impl DatastarEvent {
3477
/// Turn this [`DatastarEvent`] into an Axum SSE [`Event`].
3578
pub fn write_as_axum_sse_event(&self) -> Event {
@@ -61,6 +104,18 @@ impl DatastarEvent {
61104
}
62105
}
63106

107+
impl From<DatastarEvent> for Event {
108+
fn from(value: DatastarEvent) -> Self {
109+
value.write_as_axum_sse_event()
110+
}
111+
}
112+
113+
impl From<&DatastarEvent> for Event {
114+
fn from(value: &DatastarEvent) -> Self {
115+
value.write_as_axum_sse_event()
116+
}
117+
}
118+
64119
#[derive(Deserialize)]
65120
struct DatastarParam {
66121
datastar: serde_json::Value,

src/rocket.rs

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use {
44
crate::{
55
DatastarEvent,
6-
prelude::{PatchElements, PatchSignals},
6+
prelude::{ExecuteScript, PatchElements, PatchSignals},
77
},
88
rocket::response::stream::Event,
99
std::fmt::Write,
@@ -16,13 +16,56 @@ impl PatchElements {
1616
}
1717
}
1818

19+
impl From<PatchElements> for Event {
20+
fn from(value: PatchElements) -> Self {
21+
value.write_as_rocket_sse_event()
22+
}
23+
}
24+
25+
impl From<&PatchElements> for Event {
26+
fn from(value: &PatchElements) -> Self {
27+
value.write_as_rocket_sse_event()
28+
}
29+
}
30+
1931
impl PatchSignals {
2032
/// Write this [`PatchSignals`] into a Rocket SSE [`Event`].
2133
pub fn write_as_rocket_sse_event(&self) -> Event {
2234
self.as_datastar_event().write_as_rocket_sse_event()
2335
}
2436
}
2537

38+
impl From<PatchSignals> for Event {
39+
fn from(value: PatchSignals) -> Self {
40+
value.write_as_rocket_sse_event()
41+
}
42+
}
43+
44+
impl From<&PatchSignals> for Event {
45+
fn from(value: &PatchSignals) -> Self {
46+
value.write_as_rocket_sse_event()
47+
}
48+
}
49+
50+
impl ExecuteScript {
51+
/// Write this [`ExecuteScript`] into a Rocket SSE [`Event`].
52+
pub fn write_as_rocket_sse_event(&self) -> Event {
53+
self.as_datastar_event().write_as_rocket_sse_event()
54+
}
55+
}
56+
57+
impl From<ExecuteScript> for Event {
58+
fn from(value: ExecuteScript) -> Self {
59+
value.write_as_rocket_sse_event()
60+
}
61+
}
62+
63+
impl From<&ExecuteScript> for Event {
64+
fn from(value: &ExecuteScript) -> Self {
65+
value.write_as_rocket_sse_event()
66+
}
67+
}
68+
2669
impl DatastarEvent {
2770
/// Turn this [`DatastarEvent`] into a Rocket SSE [`Event`].
2871
pub fn write_as_rocket_sse_event(&self) -> Event {
@@ -47,3 +90,15 @@ impl DatastarEvent {
4790
}
4891
}
4992
}
93+
94+
impl From<DatastarEvent> for Event {
95+
fn from(value: DatastarEvent) -> Self {
96+
value.write_as_rocket_sse_event()
97+
}
98+
}
99+
100+
impl From<&DatastarEvent> for Event {
101+
fn from(value: &DatastarEvent) -> Self {
102+
value.write_as_rocket_sse_event()
103+
}
104+
}

0 commit comments

Comments
 (0)