Skip to content

Instantly share code, notes, and snippets.

@easeq
easeq / restartable.rs
Created October 29, 2024 03:36 — forked from Swoorup/restartable.rs
Restartable stream on complete or error using a connect function
use std::task::Poll;
use futures::{Future, FutureExt, Stream};
use pin_project::pin_project;
use tracing::debug;
#[pin_project(project = StreamStateProj)]
#[derive(Debug, Clone)]
enum StreamState<F, S>
where