use super::{IntoResponse, Script};
use rama_http_types::{
Response,
header::{CONTENT_TYPE, HeaderValue},
};
#[derive(Debug, Clone, Copy)]
pub struct DatastarScript(Script<&'static str>);
impl Default for DatastarScript {
fn default() -> Self {
Self(Script(include_str!("./datastar.js")))
}
}
impl DatastarScript {
#[inline]
#[must_use]
pub fn new() -> Self {
Default::default()
}
}
impl IntoResponse for DatastarScript {
#[inline]
fn into_response(self) -> Response {
self.0.into_response()
}
}
#[derive(Debug, Clone, Copy)]
pub struct DatastarSourceMap(&'static str);
impl Default for DatastarSourceMap {
fn default() -> Self {
Self(include_str!("./datastar.js.map"))
}
}
impl DatastarSourceMap {
#[inline]
#[must_use]
pub fn new() -> Self {
Default::default()
}
}
impl IntoResponse for DatastarSourceMap {
#[inline]
fn into_response(self) -> Response {
let mut response = Response::new(self.0.into());
response
.headers_mut()
.insert(CONTENT_TYPE, HeaderValue::from_static("application/json"));
response
}
}