Coverage Report

Created: 2026-09-19 07:25

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/unfold_state.rs
Line
Count
Source
1
use core::pin::Pin;
2
3
use pin_project_lite::pin_project;
4
5
pin_project! {
6
    /// UnfoldState used for stream and sink unfolds
7
    #[project = UnfoldStateProj]
8
    #[project_replace = UnfoldStateProjReplace]
9
    #[derive(Debug)]
10
    pub(crate) enum UnfoldState<T, R> {
11
        Value {
12
            value: T,
13
        },
14
        Future {
15
            #[pin]
16
            future: R,
17
        },
18
        Empty,
19
    }
20
}
21
22
impl<T, R> UnfoldState<T, R> {
23
1.35k
    pub(crate) fn project_future(self: Pin<&mut Self>) -> Option<Pin<&mut R>> {
24
1.35k
        match self.project() {
25
1.35k
            UnfoldStateProj::Future { future } => Some(future),
26
0
            _ => None,
27
        }
28
1.35k
    }
<futures_util::unfold_state::UnfoldState<(alloc::vec::Vec<alloc::sync::Arc<dyn surrealdb_core::exec::ExecOperator>>, surrealdb_core::exec::context::ExecutionContext, usize, core::option::Option<core::pin::Pin<alloc::boxed::Box<dyn futures_core::stream::Stream<Item = core::result::Result<surrealdb_core::exec::ValueBatch, surrealdb_core::expr::ControlFlow>> + core::marker::Send>>>), <surrealdb_core::exec::operators::union::Union as surrealdb_core::exec::ExecOperator>::execute::{closure#0}::{closure#0}>>::project_future
Line
Count
Source
23
1.35k
    pub(crate) fn project_future(self: Pin<&mut Self>) -> Option<Pin<&mut R>> {
24
1.35k
        match self.project() {
25
1.35k
            UnfoldStateProj::Future { future } => Some(future),
26
0
            _ => None,
27
        }
28
1.35k
    }
Unexecuted instantiation: <futures_util::unfold_state::UnfoldState<(core::pin::Pin<alloc::boxed::Box<dyn futures_core::stream::Stream<Item = core::result::Result<bytes::bytes::Bytes, object_store::Error>> + core::marker::Send>>, bytes::bytes_mut::BytesMut, bool, usize), <object_store::chunked::ChunkedStore as object_store::ObjectStore>::get_opts::{closure#0}::{closure#0}::{closure#0}>>::project_future
Unexecuted instantiation: <futures_util::unfold_state::UnfoldState<_, _>>::project_future
29
30
1.35k
    pub(crate) fn take_value(self: Pin<&mut Self>) -> Option<T> {
31
1.35k
        match &*self {
32
777
            Self::Value { .. } => match self.project_replace(Self::Empty) {
33
777
                UnfoldStateProjReplace::Value { value } => Some(value),
34
0
                _ => unreachable!(),
35
            },
36
582
            _ => None,
37
        }
38
1.35k
    }
<futures_util::unfold_state::UnfoldState<(alloc::vec::Vec<alloc::sync::Arc<dyn surrealdb_core::exec::ExecOperator>>, surrealdb_core::exec::context::ExecutionContext, usize, core::option::Option<core::pin::Pin<alloc::boxed::Box<dyn futures_core::stream::Stream<Item = core::result::Result<surrealdb_core::exec::ValueBatch, surrealdb_core::expr::ControlFlow>> + core::marker::Send>>>), <surrealdb_core::exec::operators::union::Union as surrealdb_core::exec::ExecOperator>::execute::{closure#0}::{closure#0}>>::take_value
Line
Count
Source
30
1.35k
    pub(crate) fn take_value(self: Pin<&mut Self>) -> Option<T> {
31
1.35k
        match &*self {
32
777
            Self::Value { .. } => match self.project_replace(Self::Empty) {
33
777
                UnfoldStateProjReplace::Value { value } => Some(value),
34
0
                _ => unreachable!(),
35
            },
36
582
            _ => None,
37
        }
38
1.35k
    }
Unexecuted instantiation: <futures_util::unfold_state::UnfoldState<(core::pin::Pin<alloc::boxed::Box<dyn futures_core::stream::Stream<Item = core::result::Result<bytes::bytes::Bytes, object_store::Error>> + core::marker::Send>>, bytes::bytes_mut::BytesMut, bool, usize), <object_store::chunked::ChunkedStore as object_store::ObjectStore>::get_opts::{closure#0}::{closure#0}::{closure#0}>>::take_value
Unexecuted instantiation: <futures_util::unfold_state::UnfoldState<_, _>>::take_value
39
}