ntex_io/
macros.rs

1/// An implementation of [`poll_read/write_ready`] that forwards readiness checks to a field.
2#[macro_export]
3macro_rules! forward_ready {
4    ($field:ident) => {
5        #[inline]
6        fn poll_read_ready(
7            &self,
8            cx: &mut std::task::Context<'_>,
9        ) -> Poll<$crate::Readiness> {
10            self.$field.poll_read_ready(cx)
11        }
12
13        #[inline]
14        fn poll_write_ready(
15            &self,
16            cx: &mut std::task::Context<'_>,
17        ) -> Poll<$crate::Readiness> {
18            self.$field.poll_write_ready(cx)
19        }
20    };
21}
22
23#[macro_export]
24macro_rules! forward_query {
25    ($field:ident) => {
26        #[inline]
27        fn query(&self, id: std::any::TypeId) -> Option<Box<dyn std::any::Any>> {
28            self.$field.query(id)
29        }
30    };
31}
32
33#[macro_export]
34macro_rules! forward_shutdown {
35    ($field:ident) => {
36        #[inline]
37        fn shutdown(
38            &self,
39            ctx: $crate::FilterCtx<'_>,
40        ) -> std::io::Result<std::task::Poll<()>> {
41            self.$field.shutdown(ctx)
42        }
43    };
44}