/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_futureLine | 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_futureUnexecuted 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_valueLine | 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_valueUnexecuted instantiation: <futures_util::unfold_state::UnfoldState<_, _>>::take_value |
39 | | } |