use async_recursion::async_recursion;
#[must_use]
pub fn generic_parameter<'async_recursion, S: Marker + Send>(
mut x: S,
) -> ::core::pin::Pin<
Box<
dyn ::core::future::Future<
Output = u64,
> + 'async_recursion + ::core::marker::Send,
>,
>
where
S: 'async_recursion,
{
Box::pin(async move { if x.descend() { generic_parameter(x).await } else { 0 } })
}