diff --git a/progenitor-impl/src/method.rs b/progenitor-impl/src/method.rs index 510608a..ab50ca6 100644 --- a/progenitor-impl/src/method.rs +++ b/progenitor-impl/src/method.rs @@ -713,6 +713,15 @@ impl Generator { use futures::TryFutureExt; use futures::TryStreamExt; + // Grab the limit. This is intended to be agnostic to the + // specific type for the limit input which is why it's a + // bit convoluted. + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); + // Execute the operation with the basic parameters // (omitting page_token) to get the first page. self.#operation_id( #(#first_params,)* ) @@ -764,6 +773,7 @@ impl Generator { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } } @@ -1690,6 +1700,18 @@ impl Generator { use futures::TryFutureExt; use futures::TryStreamExt; + // Grab the limit. This is intended to be agnostic to the + // specific type for the limit input which is why it's a + // bit convoluted. + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); + // This is the builder template we'll use for iterative // steps past the first; it has all query params set to // None (the step will fill in page_token). @@ -1748,6 +1770,7 @@ impl Generator { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } diff --git a/progenitor-impl/tests/output/nexus-builder-tagged.out b/progenitor-impl/tests/output/nexus-builder-tagged.out index 7942090..a92d657 100644 --- a/progenitor-impl/tests/output/nexus-builder-tagged.out +++ b/progenitor-impl/tests/output/nexus-builder-tagged.out @@ -21965,6 +21965,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -22001,6 +22009,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -22463,6 +22472,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -22499,6 +22516,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -23070,6 +23088,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -23106,6 +23132,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -23602,6 +23629,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -23638,6 +23673,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -24128,6 +24164,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { end_time: Ok(None), limit: Ok(None), @@ -24165,6 +24209,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -24312,6 +24357,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -24348,6 +24401,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -24789,6 +24843,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -24825,6 +24887,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -25282,6 +25345,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -25318,6 +25389,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -25939,6 +26011,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -25975,6 +26055,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -27326,6 +27407,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -27362,6 +27451,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -27802,6 +27892,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -27838,6 +27936,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -28633,6 +28732,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -28669,6 +28776,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -29321,6 +29429,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -29357,6 +29473,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -30058,6 +30175,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -30094,6 +30219,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -30747,6 +30873,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -30783,6 +30917,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -30988,6 +31123,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -31023,6 +31166,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -31234,6 +31378,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -31270,6 +31422,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -31382,6 +31535,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -31418,6 +31579,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -31898,6 +32060,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -31934,6 +32104,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32239,6 +32410,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32275,6 +32454,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32387,6 +32567,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32423,6 +32611,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32594,6 +32783,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32630,6 +32827,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32819,6 +33017,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32855,6 +33061,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32967,6 +33174,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -33003,6 +33218,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -33302,6 +33518,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -33338,6 +33562,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -33723,6 +33948,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -33758,6 +33991,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -34047,6 +34281,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -34082,6 +34324,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -34570,6 +34813,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -34606,6 +34857,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -34777,6 +35029,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -34813,6 +35073,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -35131,6 +35392,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -35167,6 +35436,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -35881,6 +36151,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -35917,6 +36195,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36107,6 +36386,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -36143,6 +36430,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36297,6 +36585,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -36332,6 +36628,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36444,6 +36741,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -36480,6 +36785,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36628,6 +36934,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -36666,6 +36980,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -37119,6 +37434,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -37157,6 +37480,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -37628,6 +37952,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -37666,6 +37998,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -38716,6 +39049,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -38752,6 +39093,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -39321,6 +39663,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -39358,6 +39708,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -40027,6 +40378,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -40063,6 +40422,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -40176,6 +40536,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -40212,6 +40580,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -40536,6 +40905,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -40572,6 +40949,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } diff --git a/progenitor-impl/tests/output/nexus-builder.out b/progenitor-impl/tests/output/nexus-builder.out index ad9b10d..d4491b7 100644 --- a/progenitor-impl/tests/output/nexus-builder.out +++ b/progenitor-impl/tests/output/nexus-builder.out @@ -21759,6 +21759,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -21795,6 +21803,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -22257,6 +22266,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -22293,6 +22310,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -22864,6 +22882,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -22900,6 +22926,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -23396,6 +23423,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -23432,6 +23467,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -23922,6 +23958,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { end_time: Ok(None), limit: Ok(None), @@ -23959,6 +24003,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -24106,6 +24151,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -24142,6 +24195,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -24583,6 +24637,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -24619,6 +24681,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -25076,6 +25139,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -25112,6 +25183,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -25733,6 +25805,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -25769,6 +25849,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -27120,6 +27201,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -27156,6 +27245,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -27596,6 +27686,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -27632,6 +27730,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -28427,6 +28526,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -28463,6 +28570,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -29115,6 +29223,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -29151,6 +29267,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -29852,6 +29969,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -29888,6 +30013,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -30541,6 +30667,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -30577,6 +30711,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -30782,6 +30917,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -30817,6 +30960,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -31028,6 +31172,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -31064,6 +31216,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -31176,6 +31329,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -31212,6 +31373,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -31692,6 +31854,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -31728,6 +31898,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32033,6 +32204,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32069,6 +32248,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32181,6 +32361,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32217,6 +32405,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32388,6 +32577,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32424,6 +32621,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32613,6 +32811,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32649,6 +32855,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -32761,6 +32968,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -32797,6 +33012,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -33096,6 +33312,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -33132,6 +33356,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -33517,6 +33742,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -33552,6 +33785,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -33841,6 +34075,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -33876,6 +34118,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -34364,6 +34607,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -34400,6 +34651,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -34571,6 +34823,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -34607,6 +34867,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -34925,6 +35186,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -34961,6 +35230,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -35675,6 +35945,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -35711,6 +35989,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -35901,6 +36180,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -35937,6 +36224,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36091,6 +36379,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -36126,6 +36422,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36238,6 +36535,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -36274,6 +36579,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36422,6 +36728,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -36460,6 +36774,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -36913,6 +37228,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -36951,6 +37274,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -37422,6 +37746,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -37460,6 +37792,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -38510,6 +38843,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -38546,6 +38887,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -39115,6 +39457,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), organization: Ok(None), @@ -39152,6 +39502,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -39821,6 +40172,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -39857,6 +40216,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -39970,6 +40330,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -40006,6 +40374,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } @@ -40330,6 +40699,14 @@ pub mod builder { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let limit = self + .limit + .clone() + .ok() + .flatten() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); let next = Self { limit: Ok(None), page_token: Ok(None), @@ -40366,6 +40743,7 @@ pub mod builder { first.chain(rest) }) .try_flatten_stream() + .take(limit) .boxed() } } diff --git a/progenitor-impl/tests/output/nexus-positional.out b/progenitor-impl/tests/output/nexus-positional.out index b8ce932..67db633 100644 --- a/progenitor-impl/tests/output/nexus-positional.out +++ b/progenitor-impl/tests/output/nexus-positional.out @@ -6473,6 +6473,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.group_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -6496,6 +6501,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -6724,6 +6730,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.organization_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -6747,6 +6758,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -7065,6 +7077,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.project_list(organization_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -7088,6 +7105,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -7352,6 +7370,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.disk_list(organization_name, project_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -7381,6 +7404,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -7613,6 +7637,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.disk_metrics_list( organization_name, project_name, @@ -7654,6 +7683,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -7746,6 +7776,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.image_list(organization_name, project_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -7775,6 +7810,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -7994,6 +8030,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.instance_list(organization_name, project_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -8023,6 +8064,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -8247,6 +8289,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.instance_disk_list( organization_name, project_name, @@ -8284,6 +8331,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -8549,6 +8597,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.instance_network_interface_list( organization_name, project_name, @@ -8586,6 +8639,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -9179,6 +9233,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.snapshot_list(organization_name, project_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -9208,6 +9267,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -9420,6 +9480,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.vpc_list(organization_name, project_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -9449,6 +9514,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -9790,6 +9856,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.vpc_router_list( organization_name, project_name, @@ -9827,6 +9898,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -10100,6 +10172,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.vpc_router_route_list( organization_name, project_name, @@ -10139,6 +10216,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -10410,6 +10488,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.vpc_subnet_list( organization_name, project_name, @@ -10447,6 +10530,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -10716,6 +10800,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.vpc_subnet_list_network_interfaces( organization_name, project_name, @@ -10755,6 +10844,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -10878,6 +10968,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.role_list(limit, None) .map_ok(move |page| { let page = page.into_inner(); @@ -10901,6 +10996,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -11038,6 +11134,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.session_me_groups(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -11061,6 +11162,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -11136,6 +11238,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.session_sshkey_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -11159,6 +11266,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -11448,6 +11556,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.certificate_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -11471,6 +11584,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -11649,6 +11763,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.physical_disk_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -11672,6 +11791,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -11743,6 +11863,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.rack_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -11766,6 +11891,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -11874,6 +12000,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.sled_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -11897,6 +12028,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -12015,6 +12147,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.sled_physical_disk_list(sled_id, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -12038,6 +12175,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -12118,6 +12256,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.system_image_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -12141,6 +12284,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -12320,6 +12464,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.ip_pool_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -12343,6 +12492,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -12554,6 +12704,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.ip_pool_range_list(pool_name, limit, None) .map_ok(move |page| { let page = page.into_inner(); @@ -12577,6 +12732,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -12746,6 +12902,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.ip_pool_service_range_list(limit, None) .map_ok(move |page| { let page = page.into_inner(); @@ -12769,6 +12930,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -13029,6 +13191,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.saga_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -13052,6 +13219,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -13161,6 +13329,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.silo_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -13184,6 +13357,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -13374,6 +13548,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.silo_identity_provider_list(silo_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -13397,6 +13576,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -13769,6 +13949,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.silo_users_list(silo_name, limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -13792,6 +13977,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -13904,6 +14090,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.system_user_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -13927,6 +14118,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -14028,6 +14220,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.timeseries_schema_get(limit, None) .map_ok(move |page| { let page = page.into_inner(); @@ -14051,6 +14248,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -14122,6 +14320,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.user_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -14145,6 +14348,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -14232,6 +14436,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.disk_list_v1(limit, organization, None, project, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -14255,6 +14464,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -14475,6 +14685,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.instance_list_v1(limit, organization, None, project, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -14498,6 +14713,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -14725,6 +14941,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.instance_disk_list_v1(instance, limit, organization, None, project, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -14755,6 +14976,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -15234,6 +15456,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.organization_list_v1(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -15257,6 +15484,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -15541,6 +15769,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.project_list_v1(limit, organization, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -15564,6 +15797,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -15880,6 +16114,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.system_component_version_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -15903,6 +16142,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -15975,6 +16215,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.update_deployments_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -15998,6 +16243,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() } @@ -16195,6 +16441,11 @@ impl Client { use futures::StreamExt; use futures::TryFutureExt; use futures::TryStreamExt; + let final_stream_limit = limit + .clone() + .and_then(|x| std::num::NonZeroUsize::try_from(x).ok()) + .map(std::num::NonZeroUsize::get) + .unwrap_or(usize::MAX); self.system_update_list(limit, None, sort_by) .map_ok(move |page| { let page = page.into_inner(); @@ -16218,6 +16469,7 @@ impl Client { first.chain(rest) }) .try_flatten_stream() + .take(final_stream_limit) .boxed() }