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