use axum::body::Body;
use axum::http::Response;
use std::{future::Future, pin::Pin};
type Never<'a> = Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'a>>;
#[derive(Clone)]
pub struct IdempotencyReplayResponse;
#[derive(Clone, Copy, Debug, Default)]
pub struct IdempotencyReplayLayer;
impl<S> tower::Layer<S> for IdempotencyReplayLayer {
type Service = S;
fn layer(&self, inner: S) -> S {
inner
}
}
#[must_use]
pub fn __replay_response(
_: &Option<axum::extract::Extension<IdempotencyReplayResponse>>,
) -> Option<Response<Body>> {
None
}
#[must_use]
pub fn __replay_finalized_session_response(
_: &Option<axum::extract::Extension<IdempotencyReplayResponse>>,
) -> Option<Response<Body>> {
None
}
pub async fn __replay_finalized_session_response_for_anonymous(
_: &crate::session::Session,
_: &str,
_: &Option<axum::extract::Extension<IdempotencyReplayResponse>>,
) -> Option<Response<Body>> {
None
}
#[derive(Clone)]
pub(crate) struct IdempotencySessionScope;
impl IdempotencySessionScope {
pub(crate) fn new(_: Option<String>, _: Option<String>) -> Self {
Self
}
}
pub(crate) fn persistence_failed_response() -> Response<Body> {
let mut response = Response::new(Body::empty());
*response.status_mut() = axum::http::StatusCode::SERVICE_UNAVAILABLE;
response
}
pub(crate) const fn has_deferred_session_commit(_: &Response<Body>) -> bool {
false
}
pub(crate) fn finalize_deferred_session_commit(_: &mut Response<Body>) -> Option<Never<'_>> {
None
}
pub(crate) fn add_deferred_session_replay_key(
_: &Response<Body>,
_: Option<&str>,
_: bool,
_: Option<&str>,
) {
}
pub(crate) fn reserve_deferred_session_replay_key(
_: &Response<Body>,
_: Option<&str>,
_: bool,
_: Option<&str>,
) -> Option<Never<'static>> {
None
}
pub(crate) fn keep_deferred_session_commit_locked(_: &mut Response<Body>) {}