1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_net_filter_deprecated__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
15pub struct FilterMarker;
16
17impl fidl::endpoints::ProtocolMarker for FilterMarker {
18 type Proxy = FilterProxy;
19 type RequestStream = FilterRequestStream;
20 #[cfg(target_os = "fuchsia")]
21 type SynchronousProxy = FilterSynchronousProxy;
22
23 const DEBUG_NAME: &'static str = "fuchsia.net.filter.deprecated.Filter";
24}
25impl fidl::endpoints::DiscoverableProtocolMarker for FilterMarker {}
26pub type FilterEnableInterfaceResult = Result<(), EnableDisableInterfaceError>;
27pub type FilterDisableInterfaceResult = Result<(), EnableDisableInterfaceError>;
28pub type FilterUpdateRulesResult = Result<(), FilterUpdateRulesError>;
29pub type FilterUpdateNatRulesResult = Result<(), FilterUpdateNatRulesError>;
30pub type FilterUpdateRdrRulesResult = Result<(), FilterUpdateRdrRulesError>;
31
32pub trait FilterProxyInterface: Send + Sync {
33 type EnableInterfaceResponseFut: std::future::Future<Output = Result<FilterEnableInterfaceResult, fidl::Error>>
34 + Send;
35 fn r#enable_interface(&self, id: u64) -> Self::EnableInterfaceResponseFut;
36 type DisableInterfaceResponseFut: std::future::Future<Output = Result<FilterDisableInterfaceResult, fidl::Error>>
37 + Send;
38 fn r#disable_interface(&self, id: u64) -> Self::DisableInterfaceResponseFut;
39 type GetRulesResponseFut: std::future::Future<Output = Result<(Vec<Rule>, u32), fidl::Error>>
40 + Send;
41 fn r#get_rules(&self) -> Self::GetRulesResponseFut;
42 type UpdateRulesResponseFut: std::future::Future<Output = Result<FilterUpdateRulesResult, fidl::Error>>
43 + Send;
44 fn r#update_rules(&self, rules: &[Rule], generation: u32) -> Self::UpdateRulesResponseFut;
45 type GetNatRulesResponseFut: std::future::Future<Output = Result<(Vec<Nat>, u32), fidl::Error>>
46 + Send;
47 fn r#get_nat_rules(&self) -> Self::GetNatRulesResponseFut;
48 type UpdateNatRulesResponseFut: std::future::Future<Output = Result<FilterUpdateNatRulesResult, fidl::Error>>
49 + Send;
50 fn r#update_nat_rules(&self, rules: &[Nat], generation: u32)
51 -> Self::UpdateNatRulesResponseFut;
52 type GetRdrRulesResponseFut: std::future::Future<Output = Result<(Vec<Rdr>, u32), fidl::Error>>
53 + Send;
54 fn r#get_rdr_rules(&self) -> Self::GetRdrRulesResponseFut;
55 type UpdateRdrRulesResponseFut: std::future::Future<Output = Result<FilterUpdateRdrRulesResult, fidl::Error>>
56 + Send;
57 fn r#update_rdr_rules(&self, rules: &[Rdr], generation: u32)
58 -> Self::UpdateRdrRulesResponseFut;
59 type CheckPresenceResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
60 fn r#check_presence(&self) -> Self::CheckPresenceResponseFut;
61}
62#[derive(Debug)]
63#[cfg(target_os = "fuchsia")]
64pub struct FilterSynchronousProxy {
65 client: fidl::client::sync::Client,
66}
67
68#[cfg(target_os = "fuchsia")]
69impl fidl::endpoints::SynchronousProxy for FilterSynchronousProxy {
70 type Proxy = FilterProxy;
71 type Protocol = FilterMarker;
72
73 fn from_channel(inner: fidl::Channel) -> Self {
74 Self::new(inner)
75 }
76
77 fn into_channel(self) -> fidl::Channel {
78 self.client.into_channel()
79 }
80
81 fn as_channel(&self) -> &fidl::Channel {
82 self.client.as_channel()
83 }
84}
85
86#[cfg(target_os = "fuchsia")]
87impl FilterSynchronousProxy {
88 pub fn new(channel: fidl::Channel) -> Self {
89 let protocol_name = <FilterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
90 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
91 }
92
93 pub fn into_channel(self) -> fidl::Channel {
94 self.client.into_channel()
95 }
96
97 pub fn wait_for_event(
100 &self,
101 deadline: zx::MonotonicInstant,
102 ) -> Result<FilterEvent, fidl::Error> {
103 FilterEvent::decode(self.client.wait_for_event(deadline)?)
104 }
105
106 pub fn r#enable_interface(
114 &self,
115 mut id: u64,
116 ___deadline: zx::MonotonicInstant,
117 ) -> Result<FilterEnableInterfaceResult, fidl::Error> {
118 let _response =
119 self.client.send_query::<FilterEnableInterfaceRequest, fidl::encoding::ResultType<
120 fidl::encoding::EmptyStruct,
121 EnableDisableInterfaceError,
122 >>(
123 (id,),
124 0xbf4c680f4001075,
125 fidl::encoding::DynamicFlags::empty(),
126 ___deadline,
127 )?;
128 Ok(_response.map(|x| x))
129 }
130
131 pub fn r#disable_interface(
139 &self,
140 mut id: u64,
141 ___deadline: zx::MonotonicInstant,
142 ) -> Result<FilterDisableInterfaceResult, fidl::Error> {
143 let _response =
144 self.client.send_query::<FilterDisableInterfaceRequest, fidl::encoding::ResultType<
145 fidl::encoding::EmptyStruct,
146 EnableDisableInterfaceError,
147 >>(
148 (id,),
149 0x30d2e0e00378a294,
150 fidl::encoding::DynamicFlags::empty(),
151 ___deadline,
152 )?;
153 Ok(_response.map(|x| x))
154 }
155
156 pub fn r#get_rules(
163 &self,
164 ___deadline: zx::MonotonicInstant,
165 ) -> Result<(Vec<Rule>, u32), fidl::Error> {
166 let _response =
167 self.client.send_query::<fidl::encoding::EmptyPayload, FilterGetRulesResponse>(
168 (),
169 0x284ee4bab557a949,
170 fidl::encoding::DynamicFlags::empty(),
171 ___deadline,
172 )?;
173 Ok((_response.rules, _response.generation))
174 }
175
176 pub fn r#update_rules(
191 &self,
192 mut rules: &[Rule],
193 mut generation: u32,
194 ___deadline: zx::MonotonicInstant,
195 ) -> Result<FilterUpdateRulesResult, fidl::Error> {
196 let _response =
197 self.client.send_query::<FilterUpdateRulesRequest, fidl::encoding::ResultType<
198 fidl::encoding::EmptyStruct,
199 FilterUpdateRulesError,
200 >>(
201 (rules, generation),
202 0x32181f0bf9bb9a07,
203 fidl::encoding::DynamicFlags::empty(),
204 ___deadline,
205 )?;
206 Ok(_response.map(|x| x))
207 }
208
209 pub fn r#get_nat_rules(
215 &self,
216 ___deadline: zx::MonotonicInstant,
217 ) -> Result<(Vec<Nat>, u32), fidl::Error> {
218 let _response =
219 self.client.send_query::<fidl::encoding::EmptyPayload, FilterGetNatRulesResponse>(
220 (),
221 0x5d61f46aabe0443b,
222 fidl::encoding::DynamicFlags::empty(),
223 ___deadline,
224 )?;
225 Ok((_response.rules, _response.generation))
226 }
227
228 pub fn r#update_nat_rules(
242 &self,
243 mut rules: &[Nat],
244 mut generation: u32,
245 ___deadline: zx::MonotonicInstant,
246 ) -> Result<FilterUpdateNatRulesResult, fidl::Error> {
247 let _response =
248 self.client.send_query::<FilterUpdateNatRulesRequest, fidl::encoding::ResultType<
249 fidl::encoding::EmptyStruct,
250 FilterUpdateNatRulesError,
251 >>(
252 (rules, generation),
253 0x1711b0f7d45a2ce2,
254 fidl::encoding::DynamicFlags::empty(),
255 ___deadline,
256 )?;
257 Ok(_response.map(|x| x))
258 }
259
260 pub fn r#get_rdr_rules(
266 &self,
267 ___deadline: zx::MonotonicInstant,
268 ) -> Result<(Vec<Rdr>, u32), fidl::Error> {
269 let _response =
270 self.client.send_query::<fidl::encoding::EmptyPayload, FilterGetRdrRulesResponse>(
271 (),
272 0x10c953b9ce96e5ed,
273 fidl::encoding::DynamicFlags::empty(),
274 ___deadline,
275 )?;
276 Ok((_response.rules, _response.generation))
277 }
278
279 pub fn r#update_rdr_rules(
291 &self,
292 mut rules: &[Rdr],
293 mut generation: u32,
294 ___deadline: zx::MonotonicInstant,
295 ) -> Result<FilterUpdateRdrRulesResult, fidl::Error> {
296 let _response =
297 self.client.send_query::<FilterUpdateRdrRulesRequest, fidl::encoding::ResultType<
298 fidl::encoding::EmptyStruct,
299 FilterUpdateRdrRulesError,
300 >>(
301 (rules, generation),
302 0x640119eed9f46c55,
303 fidl::encoding::DynamicFlags::empty(),
304 ___deadline,
305 )?;
306 Ok(_response.map(|x| x))
307 }
308
309 pub fn r#check_presence(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
317 let _response =
318 self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
319 (),
320 0x5b2e2293c3aa2942,
321 fidl::encoding::DynamicFlags::empty(),
322 ___deadline,
323 )?;
324 Ok(_response)
325 }
326}
327
328#[cfg(target_os = "fuchsia")]
329impl From<FilterSynchronousProxy> for zx::NullableHandle {
330 fn from(value: FilterSynchronousProxy) -> Self {
331 value.into_channel().into()
332 }
333}
334
335#[cfg(target_os = "fuchsia")]
336impl From<fidl::Channel> for FilterSynchronousProxy {
337 fn from(value: fidl::Channel) -> Self {
338 Self::new(value)
339 }
340}
341
342#[cfg(target_os = "fuchsia")]
343impl fidl::endpoints::FromClient for FilterSynchronousProxy {
344 type Protocol = FilterMarker;
345
346 fn from_client(value: fidl::endpoints::ClientEnd<FilterMarker>) -> Self {
347 Self::new(value.into_channel())
348 }
349}
350
351#[derive(Debug, Clone)]
352pub struct FilterProxy {
353 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
354}
355
356impl fidl::endpoints::Proxy for FilterProxy {
357 type Protocol = FilterMarker;
358
359 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
360 Self::new(inner)
361 }
362
363 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
364 self.client.into_channel().map_err(|client| Self { client })
365 }
366
367 fn as_channel(&self) -> &::fidl::AsyncChannel {
368 self.client.as_channel()
369 }
370}
371
372impl FilterProxy {
373 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
375 let protocol_name = <FilterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
376 Self { client: fidl::client::Client::new(channel, protocol_name) }
377 }
378
379 pub fn take_event_stream(&self) -> FilterEventStream {
385 FilterEventStream { event_receiver: self.client.take_event_receiver() }
386 }
387
388 pub fn r#enable_interface(
396 &self,
397 mut id: u64,
398 ) -> fidl::client::QueryResponseFut<
399 FilterEnableInterfaceResult,
400 fidl::encoding::DefaultFuchsiaResourceDialect,
401 > {
402 FilterProxyInterface::r#enable_interface(self, id)
403 }
404
405 pub fn r#disable_interface(
413 &self,
414 mut id: u64,
415 ) -> fidl::client::QueryResponseFut<
416 FilterDisableInterfaceResult,
417 fidl::encoding::DefaultFuchsiaResourceDialect,
418 > {
419 FilterProxyInterface::r#disable_interface(self, id)
420 }
421
422 pub fn r#get_rules(
429 &self,
430 ) -> fidl::client::QueryResponseFut<
431 (Vec<Rule>, u32),
432 fidl::encoding::DefaultFuchsiaResourceDialect,
433 > {
434 FilterProxyInterface::r#get_rules(self)
435 }
436
437 pub fn r#update_rules(
452 &self,
453 mut rules: &[Rule],
454 mut generation: u32,
455 ) -> fidl::client::QueryResponseFut<
456 FilterUpdateRulesResult,
457 fidl::encoding::DefaultFuchsiaResourceDialect,
458 > {
459 FilterProxyInterface::r#update_rules(self, rules, generation)
460 }
461
462 pub fn r#get_nat_rules(
468 &self,
469 ) -> fidl::client::QueryResponseFut<
470 (Vec<Nat>, u32),
471 fidl::encoding::DefaultFuchsiaResourceDialect,
472 > {
473 FilterProxyInterface::r#get_nat_rules(self)
474 }
475
476 pub fn r#update_nat_rules(
490 &self,
491 mut rules: &[Nat],
492 mut generation: u32,
493 ) -> fidl::client::QueryResponseFut<
494 FilterUpdateNatRulesResult,
495 fidl::encoding::DefaultFuchsiaResourceDialect,
496 > {
497 FilterProxyInterface::r#update_nat_rules(self, rules, generation)
498 }
499
500 pub fn r#get_rdr_rules(
506 &self,
507 ) -> fidl::client::QueryResponseFut<
508 (Vec<Rdr>, u32),
509 fidl::encoding::DefaultFuchsiaResourceDialect,
510 > {
511 FilterProxyInterface::r#get_rdr_rules(self)
512 }
513
514 pub fn r#update_rdr_rules(
526 &self,
527 mut rules: &[Rdr],
528 mut generation: u32,
529 ) -> fidl::client::QueryResponseFut<
530 FilterUpdateRdrRulesResult,
531 fidl::encoding::DefaultFuchsiaResourceDialect,
532 > {
533 FilterProxyInterface::r#update_rdr_rules(self, rules, generation)
534 }
535
536 pub fn r#check_presence(
544 &self,
545 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
546 FilterProxyInterface::r#check_presence(self)
547 }
548}
549
550impl FilterProxyInterface for FilterProxy {
551 type EnableInterfaceResponseFut = fidl::client::QueryResponseFut<
552 FilterEnableInterfaceResult,
553 fidl::encoding::DefaultFuchsiaResourceDialect,
554 >;
555 fn r#enable_interface(&self, mut id: u64) -> Self::EnableInterfaceResponseFut {
556 fn _decode(
557 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
558 ) -> Result<FilterEnableInterfaceResult, fidl::Error> {
559 let _response = fidl::client::decode_transaction_body::<
560 fidl::encoding::ResultType<
561 fidl::encoding::EmptyStruct,
562 EnableDisableInterfaceError,
563 >,
564 fidl::encoding::DefaultFuchsiaResourceDialect,
565 0xbf4c680f4001075,
566 >(_buf?)?;
567 Ok(_response.map(|x| x))
568 }
569 self.client
570 .send_query_and_decode::<FilterEnableInterfaceRequest, FilterEnableInterfaceResult>(
571 (id,),
572 0xbf4c680f4001075,
573 fidl::encoding::DynamicFlags::empty(),
574 _decode,
575 )
576 }
577
578 type DisableInterfaceResponseFut = fidl::client::QueryResponseFut<
579 FilterDisableInterfaceResult,
580 fidl::encoding::DefaultFuchsiaResourceDialect,
581 >;
582 fn r#disable_interface(&self, mut id: u64) -> Self::DisableInterfaceResponseFut {
583 fn _decode(
584 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
585 ) -> Result<FilterDisableInterfaceResult, fidl::Error> {
586 let _response = fidl::client::decode_transaction_body::<
587 fidl::encoding::ResultType<
588 fidl::encoding::EmptyStruct,
589 EnableDisableInterfaceError,
590 >,
591 fidl::encoding::DefaultFuchsiaResourceDialect,
592 0x30d2e0e00378a294,
593 >(_buf?)?;
594 Ok(_response.map(|x| x))
595 }
596 self.client
597 .send_query_and_decode::<FilterDisableInterfaceRequest, FilterDisableInterfaceResult>(
598 (id,),
599 0x30d2e0e00378a294,
600 fidl::encoding::DynamicFlags::empty(),
601 _decode,
602 )
603 }
604
605 type GetRulesResponseFut = fidl::client::QueryResponseFut<
606 (Vec<Rule>, u32),
607 fidl::encoding::DefaultFuchsiaResourceDialect,
608 >;
609 fn r#get_rules(&self) -> Self::GetRulesResponseFut {
610 fn _decode(
611 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
612 ) -> Result<(Vec<Rule>, u32), fidl::Error> {
613 let _response = fidl::client::decode_transaction_body::<
614 FilterGetRulesResponse,
615 fidl::encoding::DefaultFuchsiaResourceDialect,
616 0x284ee4bab557a949,
617 >(_buf?)?;
618 Ok((_response.rules, _response.generation))
619 }
620 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, (Vec<Rule>, u32)>(
621 (),
622 0x284ee4bab557a949,
623 fidl::encoding::DynamicFlags::empty(),
624 _decode,
625 )
626 }
627
628 type UpdateRulesResponseFut = fidl::client::QueryResponseFut<
629 FilterUpdateRulesResult,
630 fidl::encoding::DefaultFuchsiaResourceDialect,
631 >;
632 fn r#update_rules(
633 &self,
634 mut rules: &[Rule],
635 mut generation: u32,
636 ) -> Self::UpdateRulesResponseFut {
637 fn _decode(
638 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
639 ) -> Result<FilterUpdateRulesResult, fidl::Error> {
640 let _response = fidl::client::decode_transaction_body::<
641 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, FilterUpdateRulesError>,
642 fidl::encoding::DefaultFuchsiaResourceDialect,
643 0x32181f0bf9bb9a07,
644 >(_buf?)?;
645 Ok(_response.map(|x| x))
646 }
647 self.client.send_query_and_decode::<FilterUpdateRulesRequest, FilterUpdateRulesResult>(
648 (rules, generation),
649 0x32181f0bf9bb9a07,
650 fidl::encoding::DynamicFlags::empty(),
651 _decode,
652 )
653 }
654
655 type GetNatRulesResponseFut = fidl::client::QueryResponseFut<
656 (Vec<Nat>, u32),
657 fidl::encoding::DefaultFuchsiaResourceDialect,
658 >;
659 fn r#get_nat_rules(&self) -> Self::GetNatRulesResponseFut {
660 fn _decode(
661 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
662 ) -> Result<(Vec<Nat>, u32), fidl::Error> {
663 let _response = fidl::client::decode_transaction_body::<
664 FilterGetNatRulesResponse,
665 fidl::encoding::DefaultFuchsiaResourceDialect,
666 0x5d61f46aabe0443b,
667 >(_buf?)?;
668 Ok((_response.rules, _response.generation))
669 }
670 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, (Vec<Nat>, u32)>(
671 (),
672 0x5d61f46aabe0443b,
673 fidl::encoding::DynamicFlags::empty(),
674 _decode,
675 )
676 }
677
678 type UpdateNatRulesResponseFut = fidl::client::QueryResponseFut<
679 FilterUpdateNatRulesResult,
680 fidl::encoding::DefaultFuchsiaResourceDialect,
681 >;
682 fn r#update_nat_rules(
683 &self,
684 mut rules: &[Nat],
685 mut generation: u32,
686 ) -> Self::UpdateNatRulesResponseFut {
687 fn _decode(
688 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
689 ) -> Result<FilterUpdateNatRulesResult, fidl::Error> {
690 let _response = fidl::client::decode_transaction_body::<
691 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, FilterUpdateNatRulesError>,
692 fidl::encoding::DefaultFuchsiaResourceDialect,
693 0x1711b0f7d45a2ce2,
694 >(_buf?)?;
695 Ok(_response.map(|x| x))
696 }
697 self.client
698 .send_query_and_decode::<FilterUpdateNatRulesRequest, FilterUpdateNatRulesResult>(
699 (rules, generation),
700 0x1711b0f7d45a2ce2,
701 fidl::encoding::DynamicFlags::empty(),
702 _decode,
703 )
704 }
705
706 type GetRdrRulesResponseFut = fidl::client::QueryResponseFut<
707 (Vec<Rdr>, u32),
708 fidl::encoding::DefaultFuchsiaResourceDialect,
709 >;
710 fn r#get_rdr_rules(&self) -> Self::GetRdrRulesResponseFut {
711 fn _decode(
712 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
713 ) -> Result<(Vec<Rdr>, u32), fidl::Error> {
714 let _response = fidl::client::decode_transaction_body::<
715 FilterGetRdrRulesResponse,
716 fidl::encoding::DefaultFuchsiaResourceDialect,
717 0x10c953b9ce96e5ed,
718 >(_buf?)?;
719 Ok((_response.rules, _response.generation))
720 }
721 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, (Vec<Rdr>, u32)>(
722 (),
723 0x10c953b9ce96e5ed,
724 fidl::encoding::DynamicFlags::empty(),
725 _decode,
726 )
727 }
728
729 type UpdateRdrRulesResponseFut = fidl::client::QueryResponseFut<
730 FilterUpdateRdrRulesResult,
731 fidl::encoding::DefaultFuchsiaResourceDialect,
732 >;
733 fn r#update_rdr_rules(
734 &self,
735 mut rules: &[Rdr],
736 mut generation: u32,
737 ) -> Self::UpdateRdrRulesResponseFut {
738 fn _decode(
739 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
740 ) -> Result<FilterUpdateRdrRulesResult, fidl::Error> {
741 let _response = fidl::client::decode_transaction_body::<
742 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, FilterUpdateRdrRulesError>,
743 fidl::encoding::DefaultFuchsiaResourceDialect,
744 0x640119eed9f46c55,
745 >(_buf?)?;
746 Ok(_response.map(|x| x))
747 }
748 self.client
749 .send_query_and_decode::<FilterUpdateRdrRulesRequest, FilterUpdateRdrRulesResult>(
750 (rules, generation),
751 0x640119eed9f46c55,
752 fidl::encoding::DynamicFlags::empty(),
753 _decode,
754 )
755 }
756
757 type CheckPresenceResponseFut =
758 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
759 fn r#check_presence(&self) -> Self::CheckPresenceResponseFut {
760 fn _decode(
761 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
762 ) -> Result<(), fidl::Error> {
763 let _response = fidl::client::decode_transaction_body::<
764 fidl::encoding::EmptyPayload,
765 fidl::encoding::DefaultFuchsiaResourceDialect,
766 0x5b2e2293c3aa2942,
767 >(_buf?)?;
768 Ok(_response)
769 }
770 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
771 (),
772 0x5b2e2293c3aa2942,
773 fidl::encoding::DynamicFlags::empty(),
774 _decode,
775 )
776 }
777}
778
779pub struct FilterEventStream {
780 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
781}
782
783impl std::marker::Unpin for FilterEventStream {}
784
785impl futures::stream::FusedStream for FilterEventStream {
786 fn is_terminated(&self) -> bool {
787 self.event_receiver.is_terminated()
788 }
789}
790
791impl futures::Stream for FilterEventStream {
792 type Item = Result<FilterEvent, fidl::Error>;
793
794 fn poll_next(
795 mut self: std::pin::Pin<&mut Self>,
796 cx: &mut std::task::Context<'_>,
797 ) -> std::task::Poll<Option<Self::Item>> {
798 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
799 &mut self.event_receiver,
800 cx
801 )?) {
802 Some(buf) => std::task::Poll::Ready(Some(FilterEvent::decode(buf))),
803 None => std::task::Poll::Ready(None),
804 }
805 }
806}
807
808#[derive(Debug)]
809pub enum FilterEvent {}
810
811impl FilterEvent {
812 fn decode(
814 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
815 ) -> Result<FilterEvent, fidl::Error> {
816 let (bytes, _handles) = buf.split_mut();
817 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
818 debug_assert_eq!(tx_header.tx_id, 0);
819 match tx_header.ordinal {
820 _ => Err(fidl::Error::UnknownOrdinal {
821 ordinal: tx_header.ordinal,
822 protocol_name: <FilterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
823 }),
824 }
825 }
826}
827
828pub struct FilterRequestStream {
830 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
831 is_terminated: bool,
832}
833
834impl std::marker::Unpin for FilterRequestStream {}
835
836impl futures::stream::FusedStream for FilterRequestStream {
837 fn is_terminated(&self) -> bool {
838 self.is_terminated
839 }
840}
841
842impl fidl::endpoints::RequestStream for FilterRequestStream {
843 type Protocol = FilterMarker;
844 type ControlHandle = FilterControlHandle;
845
846 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
847 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
848 }
849
850 fn control_handle(&self) -> Self::ControlHandle {
851 FilterControlHandle { inner: self.inner.clone() }
852 }
853
854 fn into_inner(
855 self,
856 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
857 {
858 (self.inner, self.is_terminated)
859 }
860
861 fn from_inner(
862 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
863 is_terminated: bool,
864 ) -> Self {
865 Self { inner, is_terminated }
866 }
867}
868
869impl futures::Stream for FilterRequestStream {
870 type Item = Result<FilterRequest, fidl::Error>;
871
872 fn poll_next(
873 mut self: std::pin::Pin<&mut Self>,
874 cx: &mut std::task::Context<'_>,
875 ) -> std::task::Poll<Option<Self::Item>> {
876 let this = &mut *self;
877 if this.inner.check_shutdown(cx) {
878 this.is_terminated = true;
879 return std::task::Poll::Ready(None);
880 }
881 if this.is_terminated {
882 panic!("polled FilterRequestStream after completion");
883 }
884 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
885 |bytes, handles| {
886 match this.inner.channel().read_etc(cx, bytes, handles) {
887 std::task::Poll::Ready(Ok(())) => {}
888 std::task::Poll::Pending => return std::task::Poll::Pending,
889 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
890 this.is_terminated = true;
891 return std::task::Poll::Ready(None);
892 }
893 std::task::Poll::Ready(Err(e)) => {
894 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
895 e.into(),
896 ))));
897 }
898 }
899
900 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
902
903 std::task::Poll::Ready(Some(match header.ordinal {
904 0xbf4c680f4001075 => {
905 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
906 let mut req = fidl::new_empty!(
907 FilterEnableInterfaceRequest,
908 fidl::encoding::DefaultFuchsiaResourceDialect
909 );
910 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FilterEnableInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
911 let control_handle = FilterControlHandle { inner: this.inner.clone() };
912 Ok(FilterRequest::EnableInterface {
913 id: req.id,
914
915 responder: FilterEnableInterfaceResponder {
916 control_handle: std::mem::ManuallyDrop::new(control_handle),
917 tx_id: header.tx_id,
918 },
919 })
920 }
921 0x30d2e0e00378a294 => {
922 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
923 let mut req = fidl::new_empty!(
924 FilterDisableInterfaceRequest,
925 fidl::encoding::DefaultFuchsiaResourceDialect
926 );
927 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FilterDisableInterfaceRequest>(&header, _body_bytes, handles, &mut req)?;
928 let control_handle = FilterControlHandle { inner: this.inner.clone() };
929 Ok(FilterRequest::DisableInterface {
930 id: req.id,
931
932 responder: FilterDisableInterfaceResponder {
933 control_handle: std::mem::ManuallyDrop::new(control_handle),
934 tx_id: header.tx_id,
935 },
936 })
937 }
938 0x284ee4bab557a949 => {
939 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
940 let mut req = fidl::new_empty!(
941 fidl::encoding::EmptyPayload,
942 fidl::encoding::DefaultFuchsiaResourceDialect
943 );
944 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
945 let control_handle = FilterControlHandle { inner: this.inner.clone() };
946 Ok(FilterRequest::GetRules {
947 responder: FilterGetRulesResponder {
948 control_handle: std::mem::ManuallyDrop::new(control_handle),
949 tx_id: header.tx_id,
950 },
951 })
952 }
953 0x32181f0bf9bb9a07 => {
954 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
955 let mut req = fidl::new_empty!(
956 FilterUpdateRulesRequest,
957 fidl::encoding::DefaultFuchsiaResourceDialect
958 );
959 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FilterUpdateRulesRequest>(&header, _body_bytes, handles, &mut req)?;
960 let control_handle = FilterControlHandle { inner: this.inner.clone() };
961 Ok(FilterRequest::UpdateRules {
962 rules: req.rules,
963 generation: req.generation,
964
965 responder: FilterUpdateRulesResponder {
966 control_handle: std::mem::ManuallyDrop::new(control_handle),
967 tx_id: header.tx_id,
968 },
969 })
970 }
971 0x5d61f46aabe0443b => {
972 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
973 let mut req = fidl::new_empty!(
974 fidl::encoding::EmptyPayload,
975 fidl::encoding::DefaultFuchsiaResourceDialect
976 );
977 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
978 let control_handle = FilterControlHandle { inner: this.inner.clone() };
979 Ok(FilterRequest::GetNatRules {
980 responder: FilterGetNatRulesResponder {
981 control_handle: std::mem::ManuallyDrop::new(control_handle),
982 tx_id: header.tx_id,
983 },
984 })
985 }
986 0x1711b0f7d45a2ce2 => {
987 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
988 let mut req = fidl::new_empty!(
989 FilterUpdateNatRulesRequest,
990 fidl::encoding::DefaultFuchsiaResourceDialect
991 );
992 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FilterUpdateNatRulesRequest>(&header, _body_bytes, handles, &mut req)?;
993 let control_handle = FilterControlHandle { inner: this.inner.clone() };
994 Ok(FilterRequest::UpdateNatRules {
995 rules: req.rules,
996 generation: req.generation,
997
998 responder: FilterUpdateNatRulesResponder {
999 control_handle: std::mem::ManuallyDrop::new(control_handle),
1000 tx_id: header.tx_id,
1001 },
1002 })
1003 }
1004 0x10c953b9ce96e5ed => {
1005 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1006 let mut req = fidl::new_empty!(
1007 fidl::encoding::EmptyPayload,
1008 fidl::encoding::DefaultFuchsiaResourceDialect
1009 );
1010 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1011 let control_handle = FilterControlHandle { inner: this.inner.clone() };
1012 Ok(FilterRequest::GetRdrRules {
1013 responder: FilterGetRdrRulesResponder {
1014 control_handle: std::mem::ManuallyDrop::new(control_handle),
1015 tx_id: header.tx_id,
1016 },
1017 })
1018 }
1019 0x640119eed9f46c55 => {
1020 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1021 let mut req = fidl::new_empty!(
1022 FilterUpdateRdrRulesRequest,
1023 fidl::encoding::DefaultFuchsiaResourceDialect
1024 );
1025 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FilterUpdateRdrRulesRequest>(&header, _body_bytes, handles, &mut req)?;
1026 let control_handle = FilterControlHandle { inner: this.inner.clone() };
1027 Ok(FilterRequest::UpdateRdrRules {
1028 rules: req.rules,
1029 generation: req.generation,
1030
1031 responder: FilterUpdateRdrRulesResponder {
1032 control_handle: std::mem::ManuallyDrop::new(control_handle),
1033 tx_id: header.tx_id,
1034 },
1035 })
1036 }
1037 0x5b2e2293c3aa2942 => {
1038 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1039 let mut req = fidl::new_empty!(
1040 fidl::encoding::EmptyPayload,
1041 fidl::encoding::DefaultFuchsiaResourceDialect
1042 );
1043 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1044 let control_handle = FilterControlHandle { inner: this.inner.clone() };
1045 Ok(FilterRequest::CheckPresence {
1046 responder: FilterCheckPresenceResponder {
1047 control_handle: std::mem::ManuallyDrop::new(control_handle),
1048 tx_id: header.tx_id,
1049 },
1050 })
1051 }
1052 _ => Err(fidl::Error::UnknownOrdinal {
1053 ordinal: header.ordinal,
1054 protocol_name:
1055 <FilterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1056 }),
1057 }))
1058 },
1059 )
1060 }
1061}
1062
1063#[derive(Debug)]
1065pub enum FilterRequest {
1066 EnableInterface { id: u64, responder: FilterEnableInterfaceResponder },
1074 DisableInterface { id: u64, responder: FilterDisableInterfaceResponder },
1082 GetRules { responder: FilterGetRulesResponder },
1089 UpdateRules { rules: Vec<Rule>, generation: u32, responder: FilterUpdateRulesResponder },
1104 GetNatRules { responder: FilterGetNatRulesResponder },
1110 UpdateNatRules { rules: Vec<Nat>, generation: u32, responder: FilterUpdateNatRulesResponder },
1124 GetRdrRules { responder: FilterGetRdrRulesResponder },
1130 UpdateRdrRules { rules: Vec<Rdr>, generation: u32, responder: FilterUpdateRdrRulesResponder },
1142 CheckPresence { responder: FilterCheckPresenceResponder },
1150}
1151
1152impl FilterRequest {
1153 #[allow(irrefutable_let_patterns)]
1154 pub fn into_enable_interface(self) -> Option<(u64, FilterEnableInterfaceResponder)> {
1155 if let FilterRequest::EnableInterface { id, responder } = self {
1156 Some((id, responder))
1157 } else {
1158 None
1159 }
1160 }
1161
1162 #[allow(irrefutable_let_patterns)]
1163 pub fn into_disable_interface(self) -> Option<(u64, FilterDisableInterfaceResponder)> {
1164 if let FilterRequest::DisableInterface { id, responder } = self {
1165 Some((id, responder))
1166 } else {
1167 None
1168 }
1169 }
1170
1171 #[allow(irrefutable_let_patterns)]
1172 pub fn into_get_rules(self) -> Option<(FilterGetRulesResponder)> {
1173 if let FilterRequest::GetRules { responder } = self { Some((responder)) } else { None }
1174 }
1175
1176 #[allow(irrefutable_let_patterns)]
1177 pub fn into_update_rules(self) -> Option<(Vec<Rule>, u32, FilterUpdateRulesResponder)> {
1178 if let FilterRequest::UpdateRules { rules, generation, responder } = self {
1179 Some((rules, generation, responder))
1180 } else {
1181 None
1182 }
1183 }
1184
1185 #[allow(irrefutable_let_patterns)]
1186 pub fn into_get_nat_rules(self) -> Option<(FilterGetNatRulesResponder)> {
1187 if let FilterRequest::GetNatRules { responder } = self { Some((responder)) } else { None }
1188 }
1189
1190 #[allow(irrefutable_let_patterns)]
1191 pub fn into_update_nat_rules(self) -> Option<(Vec<Nat>, u32, FilterUpdateNatRulesResponder)> {
1192 if let FilterRequest::UpdateNatRules { rules, generation, responder } = self {
1193 Some((rules, generation, responder))
1194 } else {
1195 None
1196 }
1197 }
1198
1199 #[allow(irrefutable_let_patterns)]
1200 pub fn into_get_rdr_rules(self) -> Option<(FilterGetRdrRulesResponder)> {
1201 if let FilterRequest::GetRdrRules { responder } = self { Some((responder)) } else { None }
1202 }
1203
1204 #[allow(irrefutable_let_patterns)]
1205 pub fn into_update_rdr_rules(self) -> Option<(Vec<Rdr>, u32, FilterUpdateRdrRulesResponder)> {
1206 if let FilterRequest::UpdateRdrRules { rules, generation, responder } = self {
1207 Some((rules, generation, responder))
1208 } else {
1209 None
1210 }
1211 }
1212
1213 #[allow(irrefutable_let_patterns)]
1214 pub fn into_check_presence(self) -> Option<(FilterCheckPresenceResponder)> {
1215 if let FilterRequest::CheckPresence { responder } = self { Some((responder)) } else { None }
1216 }
1217
1218 pub fn method_name(&self) -> &'static str {
1220 match *self {
1221 FilterRequest::EnableInterface { .. } => "enable_interface",
1222 FilterRequest::DisableInterface { .. } => "disable_interface",
1223 FilterRequest::GetRules { .. } => "get_rules",
1224 FilterRequest::UpdateRules { .. } => "update_rules",
1225 FilterRequest::GetNatRules { .. } => "get_nat_rules",
1226 FilterRequest::UpdateNatRules { .. } => "update_nat_rules",
1227 FilterRequest::GetRdrRules { .. } => "get_rdr_rules",
1228 FilterRequest::UpdateRdrRules { .. } => "update_rdr_rules",
1229 FilterRequest::CheckPresence { .. } => "check_presence",
1230 }
1231 }
1232}
1233
1234#[derive(Debug, Clone)]
1235pub struct FilterControlHandle {
1236 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1237}
1238
1239impl fidl::endpoints::ControlHandle for FilterControlHandle {
1240 fn shutdown(&self) {
1241 self.inner.shutdown()
1242 }
1243
1244 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1245 self.inner.shutdown_with_epitaph(status)
1246 }
1247
1248 fn is_closed(&self) -> bool {
1249 self.inner.channel().is_closed()
1250 }
1251 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1252 self.inner.channel().on_closed()
1253 }
1254
1255 #[cfg(target_os = "fuchsia")]
1256 fn signal_peer(
1257 &self,
1258 clear_mask: zx::Signals,
1259 set_mask: zx::Signals,
1260 ) -> Result<(), zx_status::Status> {
1261 use fidl::Peered;
1262 self.inner.channel().signal_peer(clear_mask, set_mask)
1263 }
1264}
1265
1266impl FilterControlHandle {}
1267
1268#[must_use = "FIDL methods require a response to be sent"]
1269#[derive(Debug)]
1270pub struct FilterEnableInterfaceResponder {
1271 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1272 tx_id: u32,
1273}
1274
1275impl std::ops::Drop for FilterEnableInterfaceResponder {
1279 fn drop(&mut self) {
1280 self.control_handle.shutdown();
1281 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1283 }
1284}
1285
1286impl fidl::endpoints::Responder for FilterEnableInterfaceResponder {
1287 type ControlHandle = FilterControlHandle;
1288
1289 fn control_handle(&self) -> &FilterControlHandle {
1290 &self.control_handle
1291 }
1292
1293 fn drop_without_shutdown(mut self) {
1294 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1296 std::mem::forget(self);
1298 }
1299}
1300
1301impl FilterEnableInterfaceResponder {
1302 pub fn send(
1306 self,
1307 mut result: Result<(), EnableDisableInterfaceError>,
1308 ) -> Result<(), fidl::Error> {
1309 let _result = self.send_raw(result);
1310 if _result.is_err() {
1311 self.control_handle.shutdown();
1312 }
1313 self.drop_without_shutdown();
1314 _result
1315 }
1316
1317 pub fn send_no_shutdown_on_err(
1319 self,
1320 mut result: Result<(), EnableDisableInterfaceError>,
1321 ) -> Result<(), fidl::Error> {
1322 let _result = self.send_raw(result);
1323 self.drop_without_shutdown();
1324 _result
1325 }
1326
1327 fn send_raw(
1328 &self,
1329 mut result: Result<(), EnableDisableInterfaceError>,
1330 ) -> Result<(), fidl::Error> {
1331 self.control_handle.inner.send::<fidl::encoding::ResultType<
1332 fidl::encoding::EmptyStruct,
1333 EnableDisableInterfaceError,
1334 >>(
1335 result,
1336 self.tx_id,
1337 0xbf4c680f4001075,
1338 fidl::encoding::DynamicFlags::empty(),
1339 )
1340 }
1341}
1342
1343#[must_use = "FIDL methods require a response to be sent"]
1344#[derive(Debug)]
1345pub struct FilterDisableInterfaceResponder {
1346 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1347 tx_id: u32,
1348}
1349
1350impl std::ops::Drop for FilterDisableInterfaceResponder {
1354 fn drop(&mut self) {
1355 self.control_handle.shutdown();
1356 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1358 }
1359}
1360
1361impl fidl::endpoints::Responder for FilterDisableInterfaceResponder {
1362 type ControlHandle = FilterControlHandle;
1363
1364 fn control_handle(&self) -> &FilterControlHandle {
1365 &self.control_handle
1366 }
1367
1368 fn drop_without_shutdown(mut self) {
1369 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1371 std::mem::forget(self);
1373 }
1374}
1375
1376impl FilterDisableInterfaceResponder {
1377 pub fn send(
1381 self,
1382 mut result: Result<(), EnableDisableInterfaceError>,
1383 ) -> Result<(), fidl::Error> {
1384 let _result = self.send_raw(result);
1385 if _result.is_err() {
1386 self.control_handle.shutdown();
1387 }
1388 self.drop_without_shutdown();
1389 _result
1390 }
1391
1392 pub fn send_no_shutdown_on_err(
1394 self,
1395 mut result: Result<(), EnableDisableInterfaceError>,
1396 ) -> Result<(), fidl::Error> {
1397 let _result = self.send_raw(result);
1398 self.drop_without_shutdown();
1399 _result
1400 }
1401
1402 fn send_raw(
1403 &self,
1404 mut result: Result<(), EnableDisableInterfaceError>,
1405 ) -> Result<(), fidl::Error> {
1406 self.control_handle.inner.send::<fidl::encoding::ResultType<
1407 fidl::encoding::EmptyStruct,
1408 EnableDisableInterfaceError,
1409 >>(
1410 result,
1411 self.tx_id,
1412 0x30d2e0e00378a294,
1413 fidl::encoding::DynamicFlags::empty(),
1414 )
1415 }
1416}
1417
1418#[must_use = "FIDL methods require a response to be sent"]
1419#[derive(Debug)]
1420pub struct FilterGetRulesResponder {
1421 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1422 tx_id: u32,
1423}
1424
1425impl std::ops::Drop for FilterGetRulesResponder {
1429 fn drop(&mut self) {
1430 self.control_handle.shutdown();
1431 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1433 }
1434}
1435
1436impl fidl::endpoints::Responder for FilterGetRulesResponder {
1437 type ControlHandle = FilterControlHandle;
1438
1439 fn control_handle(&self) -> &FilterControlHandle {
1440 &self.control_handle
1441 }
1442
1443 fn drop_without_shutdown(mut self) {
1444 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1446 std::mem::forget(self);
1448 }
1449}
1450
1451impl FilterGetRulesResponder {
1452 pub fn send(self, mut rules: &[Rule], mut generation: u32) -> Result<(), fidl::Error> {
1456 let _result = self.send_raw(rules, generation);
1457 if _result.is_err() {
1458 self.control_handle.shutdown();
1459 }
1460 self.drop_without_shutdown();
1461 _result
1462 }
1463
1464 pub fn send_no_shutdown_on_err(
1466 self,
1467 mut rules: &[Rule],
1468 mut generation: u32,
1469 ) -> Result<(), fidl::Error> {
1470 let _result = self.send_raw(rules, generation);
1471 self.drop_without_shutdown();
1472 _result
1473 }
1474
1475 fn send_raw(&self, mut rules: &[Rule], mut generation: u32) -> Result<(), fidl::Error> {
1476 self.control_handle.inner.send::<FilterGetRulesResponse>(
1477 (rules, generation),
1478 self.tx_id,
1479 0x284ee4bab557a949,
1480 fidl::encoding::DynamicFlags::empty(),
1481 )
1482 }
1483}
1484
1485#[must_use = "FIDL methods require a response to be sent"]
1486#[derive(Debug)]
1487pub struct FilterUpdateRulesResponder {
1488 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1489 tx_id: u32,
1490}
1491
1492impl std::ops::Drop for FilterUpdateRulesResponder {
1496 fn drop(&mut self) {
1497 self.control_handle.shutdown();
1498 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1500 }
1501}
1502
1503impl fidl::endpoints::Responder for FilterUpdateRulesResponder {
1504 type ControlHandle = FilterControlHandle;
1505
1506 fn control_handle(&self) -> &FilterControlHandle {
1507 &self.control_handle
1508 }
1509
1510 fn drop_without_shutdown(mut self) {
1511 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1513 std::mem::forget(self);
1515 }
1516}
1517
1518impl FilterUpdateRulesResponder {
1519 pub fn send(self, mut result: Result<(), FilterUpdateRulesError>) -> Result<(), fidl::Error> {
1523 let _result = self.send_raw(result);
1524 if _result.is_err() {
1525 self.control_handle.shutdown();
1526 }
1527 self.drop_without_shutdown();
1528 _result
1529 }
1530
1531 pub fn send_no_shutdown_on_err(
1533 self,
1534 mut result: Result<(), FilterUpdateRulesError>,
1535 ) -> Result<(), fidl::Error> {
1536 let _result = self.send_raw(result);
1537 self.drop_without_shutdown();
1538 _result
1539 }
1540
1541 fn send_raw(&self, mut result: Result<(), FilterUpdateRulesError>) -> Result<(), fidl::Error> {
1542 self.control_handle.inner.send::<fidl::encoding::ResultType<
1543 fidl::encoding::EmptyStruct,
1544 FilterUpdateRulesError,
1545 >>(
1546 result,
1547 self.tx_id,
1548 0x32181f0bf9bb9a07,
1549 fidl::encoding::DynamicFlags::empty(),
1550 )
1551 }
1552}
1553
1554#[must_use = "FIDL methods require a response to be sent"]
1555#[derive(Debug)]
1556pub struct FilterGetNatRulesResponder {
1557 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1558 tx_id: u32,
1559}
1560
1561impl std::ops::Drop for FilterGetNatRulesResponder {
1565 fn drop(&mut self) {
1566 self.control_handle.shutdown();
1567 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1569 }
1570}
1571
1572impl fidl::endpoints::Responder for FilterGetNatRulesResponder {
1573 type ControlHandle = FilterControlHandle;
1574
1575 fn control_handle(&self) -> &FilterControlHandle {
1576 &self.control_handle
1577 }
1578
1579 fn drop_without_shutdown(mut self) {
1580 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1582 std::mem::forget(self);
1584 }
1585}
1586
1587impl FilterGetNatRulesResponder {
1588 pub fn send(self, mut rules: &[Nat], mut generation: u32) -> Result<(), fidl::Error> {
1592 let _result = self.send_raw(rules, generation);
1593 if _result.is_err() {
1594 self.control_handle.shutdown();
1595 }
1596 self.drop_without_shutdown();
1597 _result
1598 }
1599
1600 pub fn send_no_shutdown_on_err(
1602 self,
1603 mut rules: &[Nat],
1604 mut generation: u32,
1605 ) -> Result<(), fidl::Error> {
1606 let _result = self.send_raw(rules, generation);
1607 self.drop_without_shutdown();
1608 _result
1609 }
1610
1611 fn send_raw(&self, mut rules: &[Nat], mut generation: u32) -> Result<(), fidl::Error> {
1612 self.control_handle.inner.send::<FilterGetNatRulesResponse>(
1613 (rules, generation),
1614 self.tx_id,
1615 0x5d61f46aabe0443b,
1616 fidl::encoding::DynamicFlags::empty(),
1617 )
1618 }
1619}
1620
1621#[must_use = "FIDL methods require a response to be sent"]
1622#[derive(Debug)]
1623pub struct FilterUpdateNatRulesResponder {
1624 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1625 tx_id: u32,
1626}
1627
1628impl std::ops::Drop for FilterUpdateNatRulesResponder {
1632 fn drop(&mut self) {
1633 self.control_handle.shutdown();
1634 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1636 }
1637}
1638
1639impl fidl::endpoints::Responder for FilterUpdateNatRulesResponder {
1640 type ControlHandle = FilterControlHandle;
1641
1642 fn control_handle(&self) -> &FilterControlHandle {
1643 &self.control_handle
1644 }
1645
1646 fn drop_without_shutdown(mut self) {
1647 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1649 std::mem::forget(self);
1651 }
1652}
1653
1654impl FilterUpdateNatRulesResponder {
1655 pub fn send(
1659 self,
1660 mut result: Result<(), FilterUpdateNatRulesError>,
1661 ) -> Result<(), fidl::Error> {
1662 let _result = self.send_raw(result);
1663 if _result.is_err() {
1664 self.control_handle.shutdown();
1665 }
1666 self.drop_without_shutdown();
1667 _result
1668 }
1669
1670 pub fn send_no_shutdown_on_err(
1672 self,
1673 mut result: Result<(), FilterUpdateNatRulesError>,
1674 ) -> Result<(), fidl::Error> {
1675 let _result = self.send_raw(result);
1676 self.drop_without_shutdown();
1677 _result
1678 }
1679
1680 fn send_raw(
1681 &self,
1682 mut result: Result<(), FilterUpdateNatRulesError>,
1683 ) -> Result<(), fidl::Error> {
1684 self.control_handle.inner.send::<fidl::encoding::ResultType<
1685 fidl::encoding::EmptyStruct,
1686 FilterUpdateNatRulesError,
1687 >>(
1688 result,
1689 self.tx_id,
1690 0x1711b0f7d45a2ce2,
1691 fidl::encoding::DynamicFlags::empty(),
1692 )
1693 }
1694}
1695
1696#[must_use = "FIDL methods require a response to be sent"]
1697#[derive(Debug)]
1698pub struct FilterGetRdrRulesResponder {
1699 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1700 tx_id: u32,
1701}
1702
1703impl std::ops::Drop for FilterGetRdrRulesResponder {
1707 fn drop(&mut self) {
1708 self.control_handle.shutdown();
1709 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1711 }
1712}
1713
1714impl fidl::endpoints::Responder for FilterGetRdrRulesResponder {
1715 type ControlHandle = FilterControlHandle;
1716
1717 fn control_handle(&self) -> &FilterControlHandle {
1718 &self.control_handle
1719 }
1720
1721 fn drop_without_shutdown(mut self) {
1722 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1724 std::mem::forget(self);
1726 }
1727}
1728
1729impl FilterGetRdrRulesResponder {
1730 pub fn send(self, mut rules: &[Rdr], mut generation: u32) -> Result<(), fidl::Error> {
1734 let _result = self.send_raw(rules, generation);
1735 if _result.is_err() {
1736 self.control_handle.shutdown();
1737 }
1738 self.drop_without_shutdown();
1739 _result
1740 }
1741
1742 pub fn send_no_shutdown_on_err(
1744 self,
1745 mut rules: &[Rdr],
1746 mut generation: u32,
1747 ) -> Result<(), fidl::Error> {
1748 let _result = self.send_raw(rules, generation);
1749 self.drop_without_shutdown();
1750 _result
1751 }
1752
1753 fn send_raw(&self, mut rules: &[Rdr], mut generation: u32) -> Result<(), fidl::Error> {
1754 self.control_handle.inner.send::<FilterGetRdrRulesResponse>(
1755 (rules, generation),
1756 self.tx_id,
1757 0x10c953b9ce96e5ed,
1758 fidl::encoding::DynamicFlags::empty(),
1759 )
1760 }
1761}
1762
1763#[must_use = "FIDL methods require a response to be sent"]
1764#[derive(Debug)]
1765pub struct FilterUpdateRdrRulesResponder {
1766 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1767 tx_id: u32,
1768}
1769
1770impl std::ops::Drop for FilterUpdateRdrRulesResponder {
1774 fn drop(&mut self) {
1775 self.control_handle.shutdown();
1776 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1778 }
1779}
1780
1781impl fidl::endpoints::Responder for FilterUpdateRdrRulesResponder {
1782 type ControlHandle = FilterControlHandle;
1783
1784 fn control_handle(&self) -> &FilterControlHandle {
1785 &self.control_handle
1786 }
1787
1788 fn drop_without_shutdown(mut self) {
1789 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1791 std::mem::forget(self);
1793 }
1794}
1795
1796impl FilterUpdateRdrRulesResponder {
1797 pub fn send(
1801 self,
1802 mut result: Result<(), FilterUpdateRdrRulesError>,
1803 ) -> Result<(), fidl::Error> {
1804 let _result = self.send_raw(result);
1805 if _result.is_err() {
1806 self.control_handle.shutdown();
1807 }
1808 self.drop_without_shutdown();
1809 _result
1810 }
1811
1812 pub fn send_no_shutdown_on_err(
1814 self,
1815 mut result: Result<(), FilterUpdateRdrRulesError>,
1816 ) -> Result<(), fidl::Error> {
1817 let _result = self.send_raw(result);
1818 self.drop_without_shutdown();
1819 _result
1820 }
1821
1822 fn send_raw(
1823 &self,
1824 mut result: Result<(), FilterUpdateRdrRulesError>,
1825 ) -> Result<(), fidl::Error> {
1826 self.control_handle.inner.send::<fidl::encoding::ResultType<
1827 fidl::encoding::EmptyStruct,
1828 FilterUpdateRdrRulesError,
1829 >>(
1830 result,
1831 self.tx_id,
1832 0x640119eed9f46c55,
1833 fidl::encoding::DynamicFlags::empty(),
1834 )
1835 }
1836}
1837
1838#[must_use = "FIDL methods require a response to be sent"]
1839#[derive(Debug)]
1840pub struct FilterCheckPresenceResponder {
1841 control_handle: std::mem::ManuallyDrop<FilterControlHandle>,
1842 tx_id: u32,
1843}
1844
1845impl std::ops::Drop for FilterCheckPresenceResponder {
1849 fn drop(&mut self) {
1850 self.control_handle.shutdown();
1851 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1853 }
1854}
1855
1856impl fidl::endpoints::Responder for FilterCheckPresenceResponder {
1857 type ControlHandle = FilterControlHandle;
1858
1859 fn control_handle(&self) -> &FilterControlHandle {
1860 &self.control_handle
1861 }
1862
1863 fn drop_without_shutdown(mut self) {
1864 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1866 std::mem::forget(self);
1868 }
1869}
1870
1871impl FilterCheckPresenceResponder {
1872 pub fn send(self) -> Result<(), fidl::Error> {
1876 let _result = self.send_raw();
1877 if _result.is_err() {
1878 self.control_handle.shutdown();
1879 }
1880 self.drop_without_shutdown();
1881 _result
1882 }
1883
1884 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1886 let _result = self.send_raw();
1887 self.drop_without_shutdown();
1888 _result
1889 }
1890
1891 fn send_raw(&self) -> Result<(), fidl::Error> {
1892 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1893 (),
1894 self.tx_id,
1895 0x5b2e2293c3aa2942,
1896 fidl::encoding::DynamicFlags::empty(),
1897 )
1898 }
1899}
1900
1901mod internal {
1902 use super::*;
1903}