1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#![cfg_attr(feature = "better-docs",
cfg_attr(all(), doc = include_str!("../README.md")),
)]
#![no_std]
#![forbid(unsafe_code)]
pub use higher_order_closure as hrtb;
#[macro_export]
macro_rules! higher_order_closure {(
$(#![
with<
$($(
$lt:lifetime $(: $super_lt:lifetime)?
),+ $(,)?)?
$($(
$T:ident $(:
$(
?$Sized:ident $(+)?
)?
$(
$super:lifetime $(+)?
)?
$(
$Trait:path
)?
)?
),+ $(,)?)?
>
$(where
$($wc:tt)*
)?
])?
$( for<$($hr:lifetime),* $(,)?> )?
$( move $(@$move:tt)?)?
| $($arg_pat:tt : $ArgTy:ty),* $(,)?|
-> $Ret:ty
$body:block
) => (
({
fn __funnel__<
$(
$($(
$lt $(: $super_lt)?
,
)+)?
$($(
$T
$(:
$(?$Sized +)?
$($super +)?
$($Trait)?
)?
,
)+)?
)?
__Closure,
>
(
f: __Closure,
) -> __Closure
where
__Closure : for<$($($hr ,)*)?> $crate::__::FnOnce($($ArgTy),*) -> $Ret,
$($($($wc)*)?)?
{
f
}
__funnel__::<$($($($T ,)+)?)? _>
})(
$(move $($move)?)? |$($arg_pat),*| $body
)
)}
#[doc(hidden)] pub
mod __ {
pub use ::core::ops::FnOnce;
}
#[cfg_attr(feature = "ui-tests",
cfg_attr(all(), doc = include_str!("compile_fail_tests.md")),
)]
mod _compile_fail_tests {}