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_policy_socketproxy__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
15pub struct DnsServerWatcherMarker;
16
17impl fidl::endpoints::ProtocolMarker for DnsServerWatcherMarker {
18 type Proxy = DnsServerWatcherProxy;
19 type RequestStream = DnsServerWatcherRequestStream;
20 #[cfg(target_os = "fuchsia")]
21 type SynchronousProxy = DnsServerWatcherSynchronousProxy;
22
23 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.DnsServerWatcher";
24}
25impl fidl::endpoints::DiscoverableProtocolMarker for DnsServerWatcherMarker {}
26
27pub trait DnsServerWatcherProxyInterface: Send + Sync {
28 type WatchServersResponseFut: std::future::Future<Output = Result<Vec<DnsServerList>, fidl::Error>>
29 + Send;
30 fn r#watch_servers(&self) -> Self::WatchServersResponseFut;
31}
32#[derive(Debug)]
33#[cfg(target_os = "fuchsia")]
34pub struct DnsServerWatcherSynchronousProxy {
35 client: fidl::client::sync::Client,
36}
37
38#[cfg(target_os = "fuchsia")]
39impl fidl::endpoints::SynchronousProxy for DnsServerWatcherSynchronousProxy {
40 type Proxy = DnsServerWatcherProxy;
41 type Protocol = DnsServerWatcherMarker;
42
43 fn from_channel(inner: fidl::Channel) -> Self {
44 Self::new(inner)
45 }
46
47 fn into_channel(self) -> fidl::Channel {
48 self.client.into_channel()
49 }
50
51 fn as_channel(&self) -> &fidl::Channel {
52 self.client.as_channel()
53 }
54}
55
56#[cfg(target_os = "fuchsia")]
57impl DnsServerWatcherSynchronousProxy {
58 pub fn new(channel: fidl::Channel) -> Self {
59 let protocol_name = <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
60 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
61 }
62
63 pub fn into_channel(self) -> fidl::Channel {
64 self.client.into_channel()
65 }
66
67 pub fn wait_for_event(
70 &self,
71 deadline: zx::MonotonicInstant,
72 ) -> Result<DnsServerWatcherEvent, fidl::Error> {
73 DnsServerWatcherEvent::decode(self.client.wait_for_event(deadline)?)
74 }
75
76 pub fn r#watch_servers(
90 &self,
91 ___deadline: zx::MonotonicInstant,
92 ) -> Result<Vec<DnsServerList>, fidl::Error> {
93 let _response = self
94 .client
95 .send_query::<fidl::encoding::EmptyPayload, DnsServerWatcherWatchServersResponse>(
96 (),
97 0x767ad6d8df671383,
98 fidl::encoding::DynamicFlags::empty(),
99 ___deadline,
100 )?;
101 Ok(_response.servers)
102 }
103}
104
105#[cfg(target_os = "fuchsia")]
106impl From<DnsServerWatcherSynchronousProxy> for zx::NullableHandle {
107 fn from(value: DnsServerWatcherSynchronousProxy) -> Self {
108 value.into_channel().into()
109 }
110}
111
112#[cfg(target_os = "fuchsia")]
113impl From<fidl::Channel> for DnsServerWatcherSynchronousProxy {
114 fn from(value: fidl::Channel) -> Self {
115 Self::new(value)
116 }
117}
118
119#[cfg(target_os = "fuchsia")]
120impl fidl::endpoints::FromClient for DnsServerWatcherSynchronousProxy {
121 type Protocol = DnsServerWatcherMarker;
122
123 fn from_client(value: fidl::endpoints::ClientEnd<DnsServerWatcherMarker>) -> Self {
124 Self::new(value.into_channel())
125 }
126}
127
128#[derive(Debug, Clone)]
129pub struct DnsServerWatcherProxy {
130 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
131}
132
133impl fidl::endpoints::Proxy for DnsServerWatcherProxy {
134 type Protocol = DnsServerWatcherMarker;
135
136 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
137 Self::new(inner)
138 }
139
140 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
141 self.client.into_channel().map_err(|client| Self { client })
142 }
143
144 fn as_channel(&self) -> &::fidl::AsyncChannel {
145 self.client.as_channel()
146 }
147}
148
149impl DnsServerWatcherProxy {
150 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
152 let protocol_name = <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
153 Self { client: fidl::client::Client::new(channel, protocol_name) }
154 }
155
156 pub fn take_event_stream(&self) -> DnsServerWatcherEventStream {
162 DnsServerWatcherEventStream { event_receiver: self.client.take_event_receiver() }
163 }
164
165 pub fn r#watch_servers(
179 &self,
180 ) -> fidl::client::QueryResponseFut<
181 Vec<DnsServerList>,
182 fidl::encoding::DefaultFuchsiaResourceDialect,
183 > {
184 DnsServerWatcherProxyInterface::r#watch_servers(self)
185 }
186}
187
188impl DnsServerWatcherProxyInterface for DnsServerWatcherProxy {
189 type WatchServersResponseFut = fidl::client::QueryResponseFut<
190 Vec<DnsServerList>,
191 fidl::encoding::DefaultFuchsiaResourceDialect,
192 >;
193 fn r#watch_servers(&self) -> Self::WatchServersResponseFut {
194 fn _decode(
195 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
196 ) -> Result<Vec<DnsServerList>, fidl::Error> {
197 let _response = fidl::client::decode_transaction_body::<
198 DnsServerWatcherWatchServersResponse,
199 fidl::encoding::DefaultFuchsiaResourceDialect,
200 0x767ad6d8df671383,
201 >(_buf?)?;
202 Ok(_response.servers)
203 }
204 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<DnsServerList>>(
205 (),
206 0x767ad6d8df671383,
207 fidl::encoding::DynamicFlags::empty(),
208 _decode,
209 )
210 }
211}
212
213pub struct DnsServerWatcherEventStream {
214 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
215}
216
217impl std::marker::Unpin for DnsServerWatcherEventStream {}
218
219impl futures::stream::FusedStream for DnsServerWatcherEventStream {
220 fn is_terminated(&self) -> bool {
221 self.event_receiver.is_terminated()
222 }
223}
224
225impl futures::Stream for DnsServerWatcherEventStream {
226 type Item = Result<DnsServerWatcherEvent, fidl::Error>;
227
228 fn poll_next(
229 mut self: std::pin::Pin<&mut Self>,
230 cx: &mut std::task::Context<'_>,
231 ) -> std::task::Poll<Option<Self::Item>> {
232 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
233 &mut self.event_receiver,
234 cx
235 )?) {
236 Some(buf) => std::task::Poll::Ready(Some(DnsServerWatcherEvent::decode(buf))),
237 None => std::task::Poll::Ready(None),
238 }
239 }
240}
241
242#[derive(Debug)]
243pub enum DnsServerWatcherEvent {}
244
245impl DnsServerWatcherEvent {
246 fn decode(
248 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
249 ) -> Result<DnsServerWatcherEvent, fidl::Error> {
250 let (bytes, _handles) = buf.split_mut();
251 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
252 debug_assert_eq!(tx_header.tx_id, 0);
253 match tx_header.ordinal {
254 _ => Err(fidl::Error::UnknownOrdinal {
255 ordinal: tx_header.ordinal,
256 protocol_name:
257 <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
258 }),
259 }
260 }
261}
262
263pub struct DnsServerWatcherRequestStream {
265 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
266 is_terminated: bool,
267}
268
269impl std::marker::Unpin for DnsServerWatcherRequestStream {}
270
271impl futures::stream::FusedStream for DnsServerWatcherRequestStream {
272 fn is_terminated(&self) -> bool {
273 self.is_terminated
274 }
275}
276
277impl fidl::endpoints::RequestStream for DnsServerWatcherRequestStream {
278 type Protocol = DnsServerWatcherMarker;
279 type ControlHandle = DnsServerWatcherControlHandle;
280
281 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
282 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
283 }
284
285 fn control_handle(&self) -> Self::ControlHandle {
286 DnsServerWatcherControlHandle { inner: self.inner.clone() }
287 }
288
289 fn into_inner(
290 self,
291 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
292 {
293 (self.inner, self.is_terminated)
294 }
295
296 fn from_inner(
297 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
298 is_terminated: bool,
299 ) -> Self {
300 Self { inner, is_terminated }
301 }
302}
303
304impl futures::Stream for DnsServerWatcherRequestStream {
305 type Item = Result<DnsServerWatcherRequest, fidl::Error>;
306
307 fn poll_next(
308 mut self: std::pin::Pin<&mut Self>,
309 cx: &mut std::task::Context<'_>,
310 ) -> std::task::Poll<Option<Self::Item>> {
311 let this = &mut *self;
312 if this.inner.check_shutdown(cx) {
313 this.is_terminated = true;
314 return std::task::Poll::Ready(None);
315 }
316 if this.is_terminated {
317 panic!("polled DnsServerWatcherRequestStream after completion");
318 }
319 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
320 |bytes, handles| {
321 match this.inner.channel().read_etc(cx, bytes, handles) {
322 std::task::Poll::Ready(Ok(())) => {}
323 std::task::Poll::Pending => return std::task::Poll::Pending,
324 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
325 this.is_terminated = true;
326 return std::task::Poll::Ready(None);
327 }
328 std::task::Poll::Ready(Err(e)) => {
329 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
330 e.into(),
331 ))));
332 }
333 }
334
335 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
337
338 std::task::Poll::Ready(Some(match header.ordinal {
339 0x767ad6d8df671383 => {
340 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
341 let mut req = fidl::new_empty!(
342 fidl::encoding::EmptyPayload,
343 fidl::encoding::DefaultFuchsiaResourceDialect
344 );
345 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
346 let control_handle =
347 DnsServerWatcherControlHandle { inner: this.inner.clone() };
348 Ok(DnsServerWatcherRequest::WatchServers {
349 responder: DnsServerWatcherWatchServersResponder {
350 control_handle: std::mem::ManuallyDrop::new(control_handle),
351 tx_id: header.tx_id,
352 },
353 })
354 }
355 _ => Err(fidl::Error::UnknownOrdinal {
356 ordinal: header.ordinal,
357 protocol_name:
358 <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
359 }),
360 }))
361 },
362 )
363 }
364}
365
366#[derive(Debug)]
369pub enum DnsServerWatcherRequest {
370 WatchServers { responder: DnsServerWatcherWatchServersResponder },
384}
385
386impl DnsServerWatcherRequest {
387 #[allow(irrefutable_let_patterns)]
388 pub fn into_watch_servers(self) -> Option<(DnsServerWatcherWatchServersResponder)> {
389 if let DnsServerWatcherRequest::WatchServers { responder } = self {
390 Some((responder))
391 } else {
392 None
393 }
394 }
395
396 pub fn method_name(&self) -> &'static str {
398 match *self {
399 DnsServerWatcherRequest::WatchServers { .. } => "watch_servers",
400 }
401 }
402}
403
404#[derive(Debug, Clone)]
405pub struct DnsServerWatcherControlHandle {
406 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
407}
408
409impl fidl::endpoints::ControlHandle for DnsServerWatcherControlHandle {
410 fn shutdown(&self) {
411 self.inner.shutdown()
412 }
413 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
414 self.inner.shutdown_with_epitaph(status)
415 }
416
417 fn is_closed(&self) -> bool {
418 self.inner.channel().is_closed()
419 }
420 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
421 self.inner.channel().on_closed()
422 }
423
424 #[cfg(target_os = "fuchsia")]
425 fn signal_peer(
426 &self,
427 clear_mask: zx::Signals,
428 set_mask: zx::Signals,
429 ) -> Result<(), zx_status::Status> {
430 use fidl::Peered;
431 self.inner.channel().signal_peer(clear_mask, set_mask)
432 }
433}
434
435impl DnsServerWatcherControlHandle {}
436
437#[must_use = "FIDL methods require a response to be sent"]
438#[derive(Debug)]
439pub struct DnsServerWatcherWatchServersResponder {
440 control_handle: std::mem::ManuallyDrop<DnsServerWatcherControlHandle>,
441 tx_id: u32,
442}
443
444impl std::ops::Drop for DnsServerWatcherWatchServersResponder {
448 fn drop(&mut self) {
449 self.control_handle.shutdown();
450 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
452 }
453}
454
455impl fidl::endpoints::Responder for DnsServerWatcherWatchServersResponder {
456 type ControlHandle = DnsServerWatcherControlHandle;
457
458 fn control_handle(&self) -> &DnsServerWatcherControlHandle {
459 &self.control_handle
460 }
461
462 fn drop_without_shutdown(mut self) {
463 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
465 std::mem::forget(self);
467 }
468}
469
470impl DnsServerWatcherWatchServersResponder {
471 pub fn send(self, mut servers: &[DnsServerList]) -> Result<(), fidl::Error> {
475 let _result = self.send_raw(servers);
476 if _result.is_err() {
477 self.control_handle.shutdown();
478 }
479 self.drop_without_shutdown();
480 _result
481 }
482
483 pub fn send_no_shutdown_on_err(self, mut servers: &[DnsServerList]) -> Result<(), fidl::Error> {
485 let _result = self.send_raw(servers);
486 self.drop_without_shutdown();
487 _result
488 }
489
490 fn send_raw(&self, mut servers: &[DnsServerList]) -> Result<(), fidl::Error> {
491 self.control_handle.inner.send::<DnsServerWatcherWatchServersResponse>(
492 (servers,),
493 self.tx_id,
494 0x767ad6d8df671383,
495 fidl::encoding::DynamicFlags::empty(),
496 )
497 }
498}
499
500#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
501pub struct FuchsiaNetworksMarker;
502
503impl fidl::endpoints::ProtocolMarker for FuchsiaNetworksMarker {
504 type Proxy = FuchsiaNetworksProxy;
505 type RequestStream = FuchsiaNetworksRequestStream;
506 #[cfg(target_os = "fuchsia")]
507 type SynchronousProxy = FuchsiaNetworksSynchronousProxy;
508
509 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.FuchsiaNetworks";
510}
511impl fidl::endpoints::DiscoverableProtocolMarker for FuchsiaNetworksMarker {}
512
513pub trait FuchsiaNetworksProxyInterface: Send + Sync {
514 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
515 + Send;
516 fn r#set_default(
517 &self,
518 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
519 ) -> Self::SetDefaultResponseFut;
520 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
521 + Send;
522 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
523 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
524 + Send;
525 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
526 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
527 + Send;
528 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
529}
530#[derive(Debug)]
531#[cfg(target_os = "fuchsia")]
532pub struct FuchsiaNetworksSynchronousProxy {
533 client: fidl::client::sync::Client,
534}
535
536#[cfg(target_os = "fuchsia")]
537impl fidl::endpoints::SynchronousProxy for FuchsiaNetworksSynchronousProxy {
538 type Proxy = FuchsiaNetworksProxy;
539 type Protocol = FuchsiaNetworksMarker;
540
541 fn from_channel(inner: fidl::Channel) -> Self {
542 Self::new(inner)
543 }
544
545 fn into_channel(self) -> fidl::Channel {
546 self.client.into_channel()
547 }
548
549 fn as_channel(&self) -> &fidl::Channel {
550 self.client.as_channel()
551 }
552}
553
554#[cfg(target_os = "fuchsia")]
555impl FuchsiaNetworksSynchronousProxy {
556 pub fn new(channel: fidl::Channel) -> Self {
557 let protocol_name = <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
558 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
559 }
560
561 pub fn into_channel(self) -> fidl::Channel {
562 self.client.into_channel()
563 }
564
565 pub fn wait_for_event(
568 &self,
569 deadline: zx::MonotonicInstant,
570 ) -> Result<FuchsiaNetworksEvent, fidl::Error> {
571 FuchsiaNetworksEvent::decode(self.client.wait_for_event(deadline)?)
572 }
573
574 pub fn r#set_default(
578 &self,
579 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
580 ___deadline: zx::MonotonicInstant,
581 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
582 let _response =
583 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
584 fidl::encoding::EmptyStruct,
585 NetworkRegistrySetDefaultError,
586 >>(
587 (network_id,),
588 0x787930c67b8cf82c,
589 fidl::encoding::DynamicFlags::empty(),
590 ___deadline,
591 )?;
592 Ok(_response.map(|x| x))
593 }
594
595 pub fn r#add(
600 &self,
601 mut network: &Network,
602 ___deadline: zx::MonotonicInstant,
603 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
604 let _response =
605 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
606 fidl::encoding::EmptyStruct,
607 NetworkRegistryAddError,
608 >>(
609 (network,),
610 0x197e70a1cbeab3ad,
611 fidl::encoding::DynamicFlags::empty(),
612 ___deadline,
613 )?;
614 Ok(_response.map(|x| x))
615 }
616
617 pub fn r#update(
621 &self,
622 mut network: &Network,
623 ___deadline: zx::MonotonicInstant,
624 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
625 let _response =
626 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
627 fidl::encoding::EmptyStruct,
628 NetworkRegistryUpdateError,
629 >>(
630 (network,),
631 0x3bc790ae5418ff0e,
632 fidl::encoding::DynamicFlags::empty(),
633 ___deadline,
634 )?;
635 Ok(_response.map(|x| x))
636 }
637
638 pub fn r#remove(
642 &self,
643 mut network_id: u32,
644 ___deadline: zx::MonotonicInstant,
645 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
646 let _response =
647 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
648 fidl::encoding::EmptyStruct,
649 NetworkRegistryRemoveError,
650 >>(
651 (network_id,),
652 0x1302df41dca6379e,
653 fidl::encoding::DynamicFlags::empty(),
654 ___deadline,
655 )?;
656 Ok(_response.map(|x| x))
657 }
658}
659
660#[cfg(target_os = "fuchsia")]
661impl From<FuchsiaNetworksSynchronousProxy> for zx::NullableHandle {
662 fn from(value: FuchsiaNetworksSynchronousProxy) -> Self {
663 value.into_channel().into()
664 }
665}
666
667#[cfg(target_os = "fuchsia")]
668impl From<fidl::Channel> for FuchsiaNetworksSynchronousProxy {
669 fn from(value: fidl::Channel) -> Self {
670 Self::new(value)
671 }
672}
673
674#[cfg(target_os = "fuchsia")]
675impl fidl::endpoints::FromClient for FuchsiaNetworksSynchronousProxy {
676 type Protocol = FuchsiaNetworksMarker;
677
678 fn from_client(value: fidl::endpoints::ClientEnd<FuchsiaNetworksMarker>) -> Self {
679 Self::new(value.into_channel())
680 }
681}
682
683#[derive(Debug, Clone)]
684pub struct FuchsiaNetworksProxy {
685 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
686}
687
688impl fidl::endpoints::Proxy for FuchsiaNetworksProxy {
689 type Protocol = FuchsiaNetworksMarker;
690
691 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
692 Self::new(inner)
693 }
694
695 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
696 self.client.into_channel().map_err(|client| Self { client })
697 }
698
699 fn as_channel(&self) -> &::fidl::AsyncChannel {
700 self.client.as_channel()
701 }
702}
703
704impl FuchsiaNetworksProxy {
705 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
707 let protocol_name = <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
708 Self { client: fidl::client::Client::new(channel, protocol_name) }
709 }
710
711 pub fn take_event_stream(&self) -> FuchsiaNetworksEventStream {
717 FuchsiaNetworksEventStream { event_receiver: self.client.take_event_receiver() }
718 }
719
720 pub fn r#set_default(
724 &self,
725 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
726 ) -> fidl::client::QueryResponseFut<
727 NetworkRegistrySetDefaultResult,
728 fidl::encoding::DefaultFuchsiaResourceDialect,
729 > {
730 FuchsiaNetworksProxyInterface::r#set_default(self, network_id)
731 }
732
733 pub fn r#add(
738 &self,
739 mut network: &Network,
740 ) -> fidl::client::QueryResponseFut<
741 NetworkRegistryAddResult,
742 fidl::encoding::DefaultFuchsiaResourceDialect,
743 > {
744 FuchsiaNetworksProxyInterface::r#add(self, network)
745 }
746
747 pub fn r#update(
751 &self,
752 mut network: &Network,
753 ) -> fidl::client::QueryResponseFut<
754 NetworkRegistryUpdateResult,
755 fidl::encoding::DefaultFuchsiaResourceDialect,
756 > {
757 FuchsiaNetworksProxyInterface::r#update(self, network)
758 }
759
760 pub fn r#remove(
764 &self,
765 mut network_id: u32,
766 ) -> fidl::client::QueryResponseFut<
767 NetworkRegistryRemoveResult,
768 fidl::encoding::DefaultFuchsiaResourceDialect,
769 > {
770 FuchsiaNetworksProxyInterface::r#remove(self, network_id)
771 }
772}
773
774impl FuchsiaNetworksProxyInterface for FuchsiaNetworksProxy {
775 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
776 NetworkRegistrySetDefaultResult,
777 fidl::encoding::DefaultFuchsiaResourceDialect,
778 >;
779 fn r#set_default(
780 &self,
781 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
782 ) -> Self::SetDefaultResponseFut {
783 fn _decode(
784 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
785 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
786 let _response = fidl::client::decode_transaction_body::<
787 fidl::encoding::ResultType<
788 fidl::encoding::EmptyStruct,
789 NetworkRegistrySetDefaultError,
790 >,
791 fidl::encoding::DefaultFuchsiaResourceDialect,
792 0x787930c67b8cf82c,
793 >(_buf?)?;
794 Ok(_response.map(|x| x))
795 }
796 self.client.send_query_and_decode::<
797 NetworkRegistrySetDefaultRequest,
798 NetworkRegistrySetDefaultResult,
799 >(
800 (network_id,),
801 0x787930c67b8cf82c,
802 fidl::encoding::DynamicFlags::empty(),
803 _decode,
804 )
805 }
806
807 type AddResponseFut = fidl::client::QueryResponseFut<
808 NetworkRegistryAddResult,
809 fidl::encoding::DefaultFuchsiaResourceDialect,
810 >;
811 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
812 fn _decode(
813 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
814 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
815 let _response = fidl::client::decode_transaction_body::<
816 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
817 fidl::encoding::DefaultFuchsiaResourceDialect,
818 0x197e70a1cbeab3ad,
819 >(_buf?)?;
820 Ok(_response.map(|x| x))
821 }
822 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
823 (network,),
824 0x197e70a1cbeab3ad,
825 fidl::encoding::DynamicFlags::empty(),
826 _decode,
827 )
828 }
829
830 type UpdateResponseFut = fidl::client::QueryResponseFut<
831 NetworkRegistryUpdateResult,
832 fidl::encoding::DefaultFuchsiaResourceDialect,
833 >;
834 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
835 fn _decode(
836 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
837 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
838 let _response = fidl::client::decode_transaction_body::<
839 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
840 fidl::encoding::DefaultFuchsiaResourceDialect,
841 0x3bc790ae5418ff0e,
842 >(_buf?)?;
843 Ok(_response.map(|x| x))
844 }
845 self.client
846 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
847 (network,),
848 0x3bc790ae5418ff0e,
849 fidl::encoding::DynamicFlags::empty(),
850 _decode,
851 )
852 }
853
854 type RemoveResponseFut = fidl::client::QueryResponseFut<
855 NetworkRegistryRemoveResult,
856 fidl::encoding::DefaultFuchsiaResourceDialect,
857 >;
858 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
859 fn _decode(
860 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
861 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
862 let _response = fidl::client::decode_transaction_body::<
863 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
864 fidl::encoding::DefaultFuchsiaResourceDialect,
865 0x1302df41dca6379e,
866 >(_buf?)?;
867 Ok(_response.map(|x| x))
868 }
869 self.client
870 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
871 (network_id,),
872 0x1302df41dca6379e,
873 fidl::encoding::DynamicFlags::empty(),
874 _decode,
875 )
876 }
877}
878
879pub struct FuchsiaNetworksEventStream {
880 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
881}
882
883impl std::marker::Unpin for FuchsiaNetworksEventStream {}
884
885impl futures::stream::FusedStream for FuchsiaNetworksEventStream {
886 fn is_terminated(&self) -> bool {
887 self.event_receiver.is_terminated()
888 }
889}
890
891impl futures::Stream for FuchsiaNetworksEventStream {
892 type Item = Result<FuchsiaNetworksEvent, fidl::Error>;
893
894 fn poll_next(
895 mut self: std::pin::Pin<&mut Self>,
896 cx: &mut std::task::Context<'_>,
897 ) -> std::task::Poll<Option<Self::Item>> {
898 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
899 &mut self.event_receiver,
900 cx
901 )?) {
902 Some(buf) => std::task::Poll::Ready(Some(FuchsiaNetworksEvent::decode(buf))),
903 None => std::task::Poll::Ready(None),
904 }
905 }
906}
907
908#[derive(Debug)]
909pub enum FuchsiaNetworksEvent {}
910
911impl FuchsiaNetworksEvent {
912 fn decode(
914 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
915 ) -> Result<FuchsiaNetworksEvent, fidl::Error> {
916 let (bytes, _handles) = buf.split_mut();
917 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
918 debug_assert_eq!(tx_header.tx_id, 0);
919 match tx_header.ordinal {
920 _ => Err(fidl::Error::UnknownOrdinal {
921 ordinal: tx_header.ordinal,
922 protocol_name:
923 <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
924 }),
925 }
926 }
927}
928
929pub struct FuchsiaNetworksRequestStream {
931 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
932 is_terminated: bool,
933}
934
935impl std::marker::Unpin for FuchsiaNetworksRequestStream {}
936
937impl futures::stream::FusedStream for FuchsiaNetworksRequestStream {
938 fn is_terminated(&self) -> bool {
939 self.is_terminated
940 }
941}
942
943impl fidl::endpoints::RequestStream for FuchsiaNetworksRequestStream {
944 type Protocol = FuchsiaNetworksMarker;
945 type ControlHandle = FuchsiaNetworksControlHandle;
946
947 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
948 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
949 }
950
951 fn control_handle(&self) -> Self::ControlHandle {
952 FuchsiaNetworksControlHandle { inner: self.inner.clone() }
953 }
954
955 fn into_inner(
956 self,
957 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
958 {
959 (self.inner, self.is_terminated)
960 }
961
962 fn from_inner(
963 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
964 is_terminated: bool,
965 ) -> Self {
966 Self { inner, is_terminated }
967 }
968}
969
970impl futures::Stream for FuchsiaNetworksRequestStream {
971 type Item = Result<FuchsiaNetworksRequest, fidl::Error>;
972
973 fn poll_next(
974 mut self: std::pin::Pin<&mut Self>,
975 cx: &mut std::task::Context<'_>,
976 ) -> std::task::Poll<Option<Self::Item>> {
977 let this = &mut *self;
978 if this.inner.check_shutdown(cx) {
979 this.is_terminated = true;
980 return std::task::Poll::Ready(None);
981 }
982 if this.is_terminated {
983 panic!("polled FuchsiaNetworksRequestStream after completion");
984 }
985 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
986 |bytes, handles| {
987 match this.inner.channel().read_etc(cx, bytes, handles) {
988 std::task::Poll::Ready(Ok(())) => {}
989 std::task::Poll::Pending => return std::task::Poll::Pending,
990 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
991 this.is_terminated = true;
992 return std::task::Poll::Ready(None);
993 }
994 std::task::Poll::Ready(Err(e)) => {
995 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
996 e.into(),
997 ))));
998 }
999 }
1000
1001 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1003
1004 std::task::Poll::Ready(Some(match header.ordinal {
1005 0x787930c67b8cf82c => {
1006 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1007 let mut req = fidl::new_empty!(
1008 NetworkRegistrySetDefaultRequest,
1009 fidl::encoding::DefaultFuchsiaResourceDialect
1010 );
1011 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
1012 let control_handle =
1013 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1014 Ok(FuchsiaNetworksRequest::SetDefault {
1015 network_id: req.network_id,
1016
1017 responder: FuchsiaNetworksSetDefaultResponder {
1018 control_handle: std::mem::ManuallyDrop::new(control_handle),
1019 tx_id: header.tx_id,
1020 },
1021 })
1022 }
1023 0x197e70a1cbeab3ad => {
1024 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1025 let mut req = fidl::new_empty!(
1026 NetworkRegistryAddRequest,
1027 fidl::encoding::DefaultFuchsiaResourceDialect
1028 );
1029 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
1030 let control_handle =
1031 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1032 Ok(FuchsiaNetworksRequest::Add {
1033 network: req.network,
1034
1035 responder: FuchsiaNetworksAddResponder {
1036 control_handle: std::mem::ManuallyDrop::new(control_handle),
1037 tx_id: header.tx_id,
1038 },
1039 })
1040 }
1041 0x3bc790ae5418ff0e => {
1042 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1043 let mut req = fidl::new_empty!(
1044 NetworkRegistryUpdateRequest,
1045 fidl::encoding::DefaultFuchsiaResourceDialect
1046 );
1047 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
1048 let control_handle =
1049 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1050 Ok(FuchsiaNetworksRequest::Update {
1051 network: req.network,
1052
1053 responder: FuchsiaNetworksUpdateResponder {
1054 control_handle: std::mem::ManuallyDrop::new(control_handle),
1055 tx_id: header.tx_id,
1056 },
1057 })
1058 }
1059 0x1302df41dca6379e => {
1060 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1061 let mut req = fidl::new_empty!(
1062 NetworkRegistryRemoveRequest,
1063 fidl::encoding::DefaultFuchsiaResourceDialect
1064 );
1065 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
1066 let control_handle =
1067 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1068 Ok(FuchsiaNetworksRequest::Remove {
1069 network_id: req.network_id,
1070
1071 responder: FuchsiaNetworksRemoveResponder {
1072 control_handle: std::mem::ManuallyDrop::new(control_handle),
1073 tx_id: header.tx_id,
1074 },
1075 })
1076 }
1077 _ => Err(fidl::Error::UnknownOrdinal {
1078 ordinal: header.ordinal,
1079 protocol_name:
1080 <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1081 }),
1082 }))
1083 },
1084 )
1085 }
1086}
1087
1088#[derive(Debug)]
1093pub enum FuchsiaNetworksRequest {
1094 SetDefault {
1098 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
1099 responder: FuchsiaNetworksSetDefaultResponder,
1100 },
1101 Add { network: Network, responder: FuchsiaNetworksAddResponder },
1106 Update { network: Network, responder: FuchsiaNetworksUpdateResponder },
1110 Remove { network_id: u32, responder: FuchsiaNetworksRemoveResponder },
1114}
1115
1116impl FuchsiaNetworksRequest {
1117 #[allow(irrefutable_let_patterns)]
1118 pub fn into_set_default(
1119 self,
1120 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, FuchsiaNetworksSetDefaultResponder)>
1121 {
1122 if let FuchsiaNetworksRequest::SetDefault { network_id, responder } = self {
1123 Some((network_id, responder))
1124 } else {
1125 None
1126 }
1127 }
1128
1129 #[allow(irrefutable_let_patterns)]
1130 pub fn into_add(self) -> Option<(Network, FuchsiaNetworksAddResponder)> {
1131 if let FuchsiaNetworksRequest::Add { network, responder } = self {
1132 Some((network, responder))
1133 } else {
1134 None
1135 }
1136 }
1137
1138 #[allow(irrefutable_let_patterns)]
1139 pub fn into_update(self) -> Option<(Network, FuchsiaNetworksUpdateResponder)> {
1140 if let FuchsiaNetworksRequest::Update { network, responder } = self {
1141 Some((network, responder))
1142 } else {
1143 None
1144 }
1145 }
1146
1147 #[allow(irrefutable_let_patterns)]
1148 pub fn into_remove(self) -> Option<(u32, FuchsiaNetworksRemoveResponder)> {
1149 if let FuchsiaNetworksRequest::Remove { network_id, responder } = self {
1150 Some((network_id, responder))
1151 } else {
1152 None
1153 }
1154 }
1155
1156 pub fn method_name(&self) -> &'static str {
1158 match *self {
1159 FuchsiaNetworksRequest::SetDefault { .. } => "set_default",
1160 FuchsiaNetworksRequest::Add { .. } => "add",
1161 FuchsiaNetworksRequest::Update { .. } => "update",
1162 FuchsiaNetworksRequest::Remove { .. } => "remove",
1163 }
1164 }
1165}
1166
1167#[derive(Debug, Clone)]
1168pub struct FuchsiaNetworksControlHandle {
1169 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1170}
1171
1172impl fidl::endpoints::ControlHandle for FuchsiaNetworksControlHandle {
1173 fn shutdown(&self) {
1174 self.inner.shutdown()
1175 }
1176 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1177 self.inner.shutdown_with_epitaph(status)
1178 }
1179
1180 fn is_closed(&self) -> bool {
1181 self.inner.channel().is_closed()
1182 }
1183 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1184 self.inner.channel().on_closed()
1185 }
1186
1187 #[cfg(target_os = "fuchsia")]
1188 fn signal_peer(
1189 &self,
1190 clear_mask: zx::Signals,
1191 set_mask: zx::Signals,
1192 ) -> Result<(), zx_status::Status> {
1193 use fidl::Peered;
1194 self.inner.channel().signal_peer(clear_mask, set_mask)
1195 }
1196}
1197
1198impl FuchsiaNetworksControlHandle {}
1199
1200#[must_use = "FIDL methods require a response to be sent"]
1201#[derive(Debug)]
1202pub struct FuchsiaNetworksSetDefaultResponder {
1203 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1204 tx_id: u32,
1205}
1206
1207impl std::ops::Drop for FuchsiaNetworksSetDefaultResponder {
1211 fn drop(&mut self) {
1212 self.control_handle.shutdown();
1213 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1215 }
1216}
1217
1218impl fidl::endpoints::Responder for FuchsiaNetworksSetDefaultResponder {
1219 type ControlHandle = FuchsiaNetworksControlHandle;
1220
1221 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1222 &self.control_handle
1223 }
1224
1225 fn drop_without_shutdown(mut self) {
1226 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1228 std::mem::forget(self);
1230 }
1231}
1232
1233impl FuchsiaNetworksSetDefaultResponder {
1234 pub fn send(
1238 self,
1239 mut result: Result<(), NetworkRegistrySetDefaultError>,
1240 ) -> Result<(), fidl::Error> {
1241 let _result = self.send_raw(result);
1242 if _result.is_err() {
1243 self.control_handle.shutdown();
1244 }
1245 self.drop_without_shutdown();
1246 _result
1247 }
1248
1249 pub fn send_no_shutdown_on_err(
1251 self,
1252 mut result: Result<(), NetworkRegistrySetDefaultError>,
1253 ) -> Result<(), fidl::Error> {
1254 let _result = self.send_raw(result);
1255 self.drop_without_shutdown();
1256 _result
1257 }
1258
1259 fn send_raw(
1260 &self,
1261 mut result: Result<(), NetworkRegistrySetDefaultError>,
1262 ) -> Result<(), fidl::Error> {
1263 self.control_handle.inner.send::<fidl::encoding::ResultType<
1264 fidl::encoding::EmptyStruct,
1265 NetworkRegistrySetDefaultError,
1266 >>(
1267 result,
1268 self.tx_id,
1269 0x787930c67b8cf82c,
1270 fidl::encoding::DynamicFlags::empty(),
1271 )
1272 }
1273}
1274
1275#[must_use = "FIDL methods require a response to be sent"]
1276#[derive(Debug)]
1277pub struct FuchsiaNetworksAddResponder {
1278 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1279 tx_id: u32,
1280}
1281
1282impl std::ops::Drop for FuchsiaNetworksAddResponder {
1286 fn drop(&mut self) {
1287 self.control_handle.shutdown();
1288 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1290 }
1291}
1292
1293impl fidl::endpoints::Responder for FuchsiaNetworksAddResponder {
1294 type ControlHandle = FuchsiaNetworksControlHandle;
1295
1296 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1297 &self.control_handle
1298 }
1299
1300 fn drop_without_shutdown(mut self) {
1301 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1303 std::mem::forget(self);
1305 }
1306}
1307
1308impl FuchsiaNetworksAddResponder {
1309 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1313 let _result = self.send_raw(result);
1314 if _result.is_err() {
1315 self.control_handle.shutdown();
1316 }
1317 self.drop_without_shutdown();
1318 _result
1319 }
1320
1321 pub fn send_no_shutdown_on_err(
1323 self,
1324 mut result: Result<(), NetworkRegistryAddError>,
1325 ) -> Result<(), fidl::Error> {
1326 let _result = self.send_raw(result);
1327 self.drop_without_shutdown();
1328 _result
1329 }
1330
1331 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1332 self.control_handle.inner.send::<fidl::encoding::ResultType<
1333 fidl::encoding::EmptyStruct,
1334 NetworkRegistryAddError,
1335 >>(
1336 result,
1337 self.tx_id,
1338 0x197e70a1cbeab3ad,
1339 fidl::encoding::DynamicFlags::empty(),
1340 )
1341 }
1342}
1343
1344#[must_use = "FIDL methods require a response to be sent"]
1345#[derive(Debug)]
1346pub struct FuchsiaNetworksUpdateResponder {
1347 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1348 tx_id: u32,
1349}
1350
1351impl std::ops::Drop for FuchsiaNetworksUpdateResponder {
1355 fn drop(&mut self) {
1356 self.control_handle.shutdown();
1357 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1359 }
1360}
1361
1362impl fidl::endpoints::Responder for FuchsiaNetworksUpdateResponder {
1363 type ControlHandle = FuchsiaNetworksControlHandle;
1364
1365 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1366 &self.control_handle
1367 }
1368
1369 fn drop_without_shutdown(mut self) {
1370 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1372 std::mem::forget(self);
1374 }
1375}
1376
1377impl FuchsiaNetworksUpdateResponder {
1378 pub fn send(
1382 self,
1383 mut result: Result<(), NetworkRegistryUpdateError>,
1384 ) -> Result<(), fidl::Error> {
1385 let _result = self.send_raw(result);
1386 if _result.is_err() {
1387 self.control_handle.shutdown();
1388 }
1389 self.drop_without_shutdown();
1390 _result
1391 }
1392
1393 pub fn send_no_shutdown_on_err(
1395 self,
1396 mut result: Result<(), NetworkRegistryUpdateError>,
1397 ) -> Result<(), fidl::Error> {
1398 let _result = self.send_raw(result);
1399 self.drop_without_shutdown();
1400 _result
1401 }
1402
1403 fn send_raw(
1404 &self,
1405 mut result: Result<(), NetworkRegistryUpdateError>,
1406 ) -> Result<(), fidl::Error> {
1407 self.control_handle.inner.send::<fidl::encoding::ResultType<
1408 fidl::encoding::EmptyStruct,
1409 NetworkRegistryUpdateError,
1410 >>(
1411 result,
1412 self.tx_id,
1413 0x3bc790ae5418ff0e,
1414 fidl::encoding::DynamicFlags::empty(),
1415 )
1416 }
1417}
1418
1419#[must_use = "FIDL methods require a response to be sent"]
1420#[derive(Debug)]
1421pub struct FuchsiaNetworksRemoveResponder {
1422 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1423 tx_id: u32,
1424}
1425
1426impl std::ops::Drop for FuchsiaNetworksRemoveResponder {
1430 fn drop(&mut self) {
1431 self.control_handle.shutdown();
1432 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1434 }
1435}
1436
1437impl fidl::endpoints::Responder for FuchsiaNetworksRemoveResponder {
1438 type ControlHandle = FuchsiaNetworksControlHandle;
1439
1440 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1441 &self.control_handle
1442 }
1443
1444 fn drop_without_shutdown(mut self) {
1445 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1447 std::mem::forget(self);
1449 }
1450}
1451
1452impl FuchsiaNetworksRemoveResponder {
1453 pub fn send(
1457 self,
1458 mut result: Result<(), NetworkRegistryRemoveError>,
1459 ) -> Result<(), fidl::Error> {
1460 let _result = self.send_raw(result);
1461 if _result.is_err() {
1462 self.control_handle.shutdown();
1463 }
1464 self.drop_without_shutdown();
1465 _result
1466 }
1467
1468 pub fn send_no_shutdown_on_err(
1470 self,
1471 mut result: Result<(), NetworkRegistryRemoveError>,
1472 ) -> Result<(), fidl::Error> {
1473 let _result = self.send_raw(result);
1474 self.drop_without_shutdown();
1475 _result
1476 }
1477
1478 fn send_raw(
1479 &self,
1480 mut result: Result<(), NetworkRegistryRemoveError>,
1481 ) -> Result<(), fidl::Error> {
1482 self.control_handle.inner.send::<fidl::encoding::ResultType<
1483 fidl::encoding::EmptyStruct,
1484 NetworkRegistryRemoveError,
1485 >>(
1486 result,
1487 self.tx_id,
1488 0x1302df41dca6379e,
1489 fidl::encoding::DynamicFlags::empty(),
1490 )
1491 }
1492}
1493
1494#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1495pub struct NetworkRegistryMarker;
1496
1497impl fidl::endpoints::ProtocolMarker for NetworkRegistryMarker {
1498 type Proxy = NetworkRegistryProxy;
1499 type RequestStream = NetworkRegistryRequestStream;
1500 #[cfg(target_os = "fuchsia")]
1501 type SynchronousProxy = NetworkRegistrySynchronousProxy;
1502
1503 const DEBUG_NAME: &'static str = "(anonymous) NetworkRegistry";
1504}
1505pub type NetworkRegistrySetDefaultResult = Result<(), NetworkRegistrySetDefaultError>;
1506pub type NetworkRegistryAddResult = Result<(), NetworkRegistryAddError>;
1507pub type NetworkRegistryUpdateResult = Result<(), NetworkRegistryUpdateError>;
1508pub type NetworkRegistryRemoveResult = Result<(), NetworkRegistryRemoveError>;
1509
1510pub trait NetworkRegistryProxyInterface: Send + Sync {
1511 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
1512 + Send;
1513 fn r#set_default(
1514 &self,
1515 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1516 ) -> Self::SetDefaultResponseFut;
1517 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
1518 + Send;
1519 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
1520 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
1521 + Send;
1522 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
1523 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
1524 + Send;
1525 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
1526}
1527#[derive(Debug)]
1528#[cfg(target_os = "fuchsia")]
1529pub struct NetworkRegistrySynchronousProxy {
1530 client: fidl::client::sync::Client,
1531}
1532
1533#[cfg(target_os = "fuchsia")]
1534impl fidl::endpoints::SynchronousProxy for NetworkRegistrySynchronousProxy {
1535 type Proxy = NetworkRegistryProxy;
1536 type Protocol = NetworkRegistryMarker;
1537
1538 fn from_channel(inner: fidl::Channel) -> Self {
1539 Self::new(inner)
1540 }
1541
1542 fn into_channel(self) -> fidl::Channel {
1543 self.client.into_channel()
1544 }
1545
1546 fn as_channel(&self) -> &fidl::Channel {
1547 self.client.as_channel()
1548 }
1549}
1550
1551#[cfg(target_os = "fuchsia")]
1552impl NetworkRegistrySynchronousProxy {
1553 pub fn new(channel: fidl::Channel) -> Self {
1554 let protocol_name = <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1555 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1556 }
1557
1558 pub fn into_channel(self) -> fidl::Channel {
1559 self.client.into_channel()
1560 }
1561
1562 pub fn wait_for_event(
1565 &self,
1566 deadline: zx::MonotonicInstant,
1567 ) -> Result<NetworkRegistryEvent, fidl::Error> {
1568 NetworkRegistryEvent::decode(self.client.wait_for_event(deadline)?)
1569 }
1570
1571 pub fn r#set_default(
1575 &self,
1576 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1577 ___deadline: zx::MonotonicInstant,
1578 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1579 let _response =
1580 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
1581 fidl::encoding::EmptyStruct,
1582 NetworkRegistrySetDefaultError,
1583 >>(
1584 (network_id,),
1585 0x787930c67b8cf82c,
1586 fidl::encoding::DynamicFlags::empty(),
1587 ___deadline,
1588 )?;
1589 Ok(_response.map(|x| x))
1590 }
1591
1592 pub fn r#add(
1597 &self,
1598 mut network: &Network,
1599 ___deadline: zx::MonotonicInstant,
1600 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1601 let _response =
1602 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
1603 fidl::encoding::EmptyStruct,
1604 NetworkRegistryAddError,
1605 >>(
1606 (network,),
1607 0x197e70a1cbeab3ad,
1608 fidl::encoding::DynamicFlags::empty(),
1609 ___deadline,
1610 )?;
1611 Ok(_response.map(|x| x))
1612 }
1613
1614 pub fn r#update(
1618 &self,
1619 mut network: &Network,
1620 ___deadline: zx::MonotonicInstant,
1621 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1622 let _response =
1623 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
1624 fidl::encoding::EmptyStruct,
1625 NetworkRegistryUpdateError,
1626 >>(
1627 (network,),
1628 0x3bc790ae5418ff0e,
1629 fidl::encoding::DynamicFlags::empty(),
1630 ___deadline,
1631 )?;
1632 Ok(_response.map(|x| x))
1633 }
1634
1635 pub fn r#remove(
1639 &self,
1640 mut network_id: u32,
1641 ___deadline: zx::MonotonicInstant,
1642 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1643 let _response =
1644 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
1645 fidl::encoding::EmptyStruct,
1646 NetworkRegistryRemoveError,
1647 >>(
1648 (network_id,),
1649 0x1302df41dca6379e,
1650 fidl::encoding::DynamicFlags::empty(),
1651 ___deadline,
1652 )?;
1653 Ok(_response.map(|x| x))
1654 }
1655}
1656
1657#[cfg(target_os = "fuchsia")]
1658impl From<NetworkRegistrySynchronousProxy> for zx::NullableHandle {
1659 fn from(value: NetworkRegistrySynchronousProxy) -> Self {
1660 value.into_channel().into()
1661 }
1662}
1663
1664#[cfg(target_os = "fuchsia")]
1665impl From<fidl::Channel> for NetworkRegistrySynchronousProxy {
1666 fn from(value: fidl::Channel) -> Self {
1667 Self::new(value)
1668 }
1669}
1670
1671#[cfg(target_os = "fuchsia")]
1672impl fidl::endpoints::FromClient for NetworkRegistrySynchronousProxy {
1673 type Protocol = NetworkRegistryMarker;
1674
1675 fn from_client(value: fidl::endpoints::ClientEnd<NetworkRegistryMarker>) -> Self {
1676 Self::new(value.into_channel())
1677 }
1678}
1679
1680#[derive(Debug, Clone)]
1681pub struct NetworkRegistryProxy {
1682 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1683}
1684
1685impl fidl::endpoints::Proxy for NetworkRegistryProxy {
1686 type Protocol = NetworkRegistryMarker;
1687
1688 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1689 Self::new(inner)
1690 }
1691
1692 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1693 self.client.into_channel().map_err(|client| Self { client })
1694 }
1695
1696 fn as_channel(&self) -> &::fidl::AsyncChannel {
1697 self.client.as_channel()
1698 }
1699}
1700
1701impl NetworkRegistryProxy {
1702 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1704 let protocol_name = <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1705 Self { client: fidl::client::Client::new(channel, protocol_name) }
1706 }
1707
1708 pub fn take_event_stream(&self) -> NetworkRegistryEventStream {
1714 NetworkRegistryEventStream { event_receiver: self.client.take_event_receiver() }
1715 }
1716
1717 pub fn r#set_default(
1721 &self,
1722 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1723 ) -> fidl::client::QueryResponseFut<
1724 NetworkRegistrySetDefaultResult,
1725 fidl::encoding::DefaultFuchsiaResourceDialect,
1726 > {
1727 NetworkRegistryProxyInterface::r#set_default(self, network_id)
1728 }
1729
1730 pub fn r#add(
1735 &self,
1736 mut network: &Network,
1737 ) -> fidl::client::QueryResponseFut<
1738 NetworkRegistryAddResult,
1739 fidl::encoding::DefaultFuchsiaResourceDialect,
1740 > {
1741 NetworkRegistryProxyInterface::r#add(self, network)
1742 }
1743
1744 pub fn r#update(
1748 &self,
1749 mut network: &Network,
1750 ) -> fidl::client::QueryResponseFut<
1751 NetworkRegistryUpdateResult,
1752 fidl::encoding::DefaultFuchsiaResourceDialect,
1753 > {
1754 NetworkRegistryProxyInterface::r#update(self, network)
1755 }
1756
1757 pub fn r#remove(
1761 &self,
1762 mut network_id: u32,
1763 ) -> fidl::client::QueryResponseFut<
1764 NetworkRegistryRemoveResult,
1765 fidl::encoding::DefaultFuchsiaResourceDialect,
1766 > {
1767 NetworkRegistryProxyInterface::r#remove(self, network_id)
1768 }
1769}
1770
1771impl NetworkRegistryProxyInterface for NetworkRegistryProxy {
1772 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
1773 NetworkRegistrySetDefaultResult,
1774 fidl::encoding::DefaultFuchsiaResourceDialect,
1775 >;
1776 fn r#set_default(
1777 &self,
1778 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1779 ) -> Self::SetDefaultResponseFut {
1780 fn _decode(
1781 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1782 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1783 let _response = fidl::client::decode_transaction_body::<
1784 fidl::encoding::ResultType<
1785 fidl::encoding::EmptyStruct,
1786 NetworkRegistrySetDefaultError,
1787 >,
1788 fidl::encoding::DefaultFuchsiaResourceDialect,
1789 0x787930c67b8cf82c,
1790 >(_buf?)?;
1791 Ok(_response.map(|x| x))
1792 }
1793 self.client.send_query_and_decode::<
1794 NetworkRegistrySetDefaultRequest,
1795 NetworkRegistrySetDefaultResult,
1796 >(
1797 (network_id,),
1798 0x787930c67b8cf82c,
1799 fidl::encoding::DynamicFlags::empty(),
1800 _decode,
1801 )
1802 }
1803
1804 type AddResponseFut = fidl::client::QueryResponseFut<
1805 NetworkRegistryAddResult,
1806 fidl::encoding::DefaultFuchsiaResourceDialect,
1807 >;
1808 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
1809 fn _decode(
1810 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1811 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1812 let _response = fidl::client::decode_transaction_body::<
1813 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
1814 fidl::encoding::DefaultFuchsiaResourceDialect,
1815 0x197e70a1cbeab3ad,
1816 >(_buf?)?;
1817 Ok(_response.map(|x| x))
1818 }
1819 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
1820 (network,),
1821 0x197e70a1cbeab3ad,
1822 fidl::encoding::DynamicFlags::empty(),
1823 _decode,
1824 )
1825 }
1826
1827 type UpdateResponseFut = fidl::client::QueryResponseFut<
1828 NetworkRegistryUpdateResult,
1829 fidl::encoding::DefaultFuchsiaResourceDialect,
1830 >;
1831 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
1832 fn _decode(
1833 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1834 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1835 let _response = fidl::client::decode_transaction_body::<
1836 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
1837 fidl::encoding::DefaultFuchsiaResourceDialect,
1838 0x3bc790ae5418ff0e,
1839 >(_buf?)?;
1840 Ok(_response.map(|x| x))
1841 }
1842 self.client
1843 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
1844 (network,),
1845 0x3bc790ae5418ff0e,
1846 fidl::encoding::DynamicFlags::empty(),
1847 _decode,
1848 )
1849 }
1850
1851 type RemoveResponseFut = fidl::client::QueryResponseFut<
1852 NetworkRegistryRemoveResult,
1853 fidl::encoding::DefaultFuchsiaResourceDialect,
1854 >;
1855 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
1856 fn _decode(
1857 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1858 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1859 let _response = fidl::client::decode_transaction_body::<
1860 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
1861 fidl::encoding::DefaultFuchsiaResourceDialect,
1862 0x1302df41dca6379e,
1863 >(_buf?)?;
1864 Ok(_response.map(|x| x))
1865 }
1866 self.client
1867 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
1868 (network_id,),
1869 0x1302df41dca6379e,
1870 fidl::encoding::DynamicFlags::empty(),
1871 _decode,
1872 )
1873 }
1874}
1875
1876pub struct NetworkRegistryEventStream {
1877 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1878}
1879
1880impl std::marker::Unpin for NetworkRegistryEventStream {}
1881
1882impl futures::stream::FusedStream for NetworkRegistryEventStream {
1883 fn is_terminated(&self) -> bool {
1884 self.event_receiver.is_terminated()
1885 }
1886}
1887
1888impl futures::Stream for NetworkRegistryEventStream {
1889 type Item = Result<NetworkRegistryEvent, fidl::Error>;
1890
1891 fn poll_next(
1892 mut self: std::pin::Pin<&mut Self>,
1893 cx: &mut std::task::Context<'_>,
1894 ) -> std::task::Poll<Option<Self::Item>> {
1895 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1896 &mut self.event_receiver,
1897 cx
1898 )?) {
1899 Some(buf) => std::task::Poll::Ready(Some(NetworkRegistryEvent::decode(buf))),
1900 None => std::task::Poll::Ready(None),
1901 }
1902 }
1903}
1904
1905#[derive(Debug)]
1906pub enum NetworkRegistryEvent {}
1907
1908impl NetworkRegistryEvent {
1909 fn decode(
1911 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1912 ) -> Result<NetworkRegistryEvent, fidl::Error> {
1913 let (bytes, _handles) = buf.split_mut();
1914 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1915 debug_assert_eq!(tx_header.tx_id, 0);
1916 match tx_header.ordinal {
1917 _ => Err(fidl::Error::UnknownOrdinal {
1918 ordinal: tx_header.ordinal,
1919 protocol_name:
1920 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1921 }),
1922 }
1923 }
1924}
1925
1926pub struct NetworkRegistryRequestStream {
1928 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1929 is_terminated: bool,
1930}
1931
1932impl std::marker::Unpin for NetworkRegistryRequestStream {}
1933
1934impl futures::stream::FusedStream for NetworkRegistryRequestStream {
1935 fn is_terminated(&self) -> bool {
1936 self.is_terminated
1937 }
1938}
1939
1940impl fidl::endpoints::RequestStream for NetworkRegistryRequestStream {
1941 type Protocol = NetworkRegistryMarker;
1942 type ControlHandle = NetworkRegistryControlHandle;
1943
1944 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1945 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1946 }
1947
1948 fn control_handle(&self) -> Self::ControlHandle {
1949 NetworkRegistryControlHandle { inner: self.inner.clone() }
1950 }
1951
1952 fn into_inner(
1953 self,
1954 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1955 {
1956 (self.inner, self.is_terminated)
1957 }
1958
1959 fn from_inner(
1960 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1961 is_terminated: bool,
1962 ) -> Self {
1963 Self { inner, is_terminated }
1964 }
1965}
1966
1967impl futures::Stream for NetworkRegistryRequestStream {
1968 type Item = Result<NetworkRegistryRequest, fidl::Error>;
1969
1970 fn poll_next(
1971 mut self: std::pin::Pin<&mut Self>,
1972 cx: &mut std::task::Context<'_>,
1973 ) -> std::task::Poll<Option<Self::Item>> {
1974 let this = &mut *self;
1975 if this.inner.check_shutdown(cx) {
1976 this.is_terminated = true;
1977 return std::task::Poll::Ready(None);
1978 }
1979 if this.is_terminated {
1980 panic!("polled NetworkRegistryRequestStream after completion");
1981 }
1982 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1983 |bytes, handles| {
1984 match this.inner.channel().read_etc(cx, bytes, handles) {
1985 std::task::Poll::Ready(Ok(())) => {}
1986 std::task::Poll::Pending => return std::task::Poll::Pending,
1987 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1988 this.is_terminated = true;
1989 return std::task::Poll::Ready(None);
1990 }
1991 std::task::Poll::Ready(Err(e)) => {
1992 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1993 e.into(),
1994 ))));
1995 }
1996 }
1997
1998 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2000
2001 std::task::Poll::Ready(Some(match header.ordinal {
2002 0x787930c67b8cf82c => {
2003 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2004 let mut req = fidl::new_empty!(
2005 NetworkRegistrySetDefaultRequest,
2006 fidl::encoding::DefaultFuchsiaResourceDialect
2007 );
2008 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
2009 let control_handle =
2010 NetworkRegistryControlHandle { inner: this.inner.clone() };
2011 Ok(NetworkRegistryRequest::SetDefault {
2012 network_id: req.network_id,
2013
2014 responder: NetworkRegistrySetDefaultResponder {
2015 control_handle: std::mem::ManuallyDrop::new(control_handle),
2016 tx_id: header.tx_id,
2017 },
2018 })
2019 }
2020 0x197e70a1cbeab3ad => {
2021 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2022 let mut req = fidl::new_empty!(
2023 NetworkRegistryAddRequest,
2024 fidl::encoding::DefaultFuchsiaResourceDialect
2025 );
2026 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
2027 let control_handle =
2028 NetworkRegistryControlHandle { inner: this.inner.clone() };
2029 Ok(NetworkRegistryRequest::Add {
2030 network: req.network,
2031
2032 responder: NetworkRegistryAddResponder {
2033 control_handle: std::mem::ManuallyDrop::new(control_handle),
2034 tx_id: header.tx_id,
2035 },
2036 })
2037 }
2038 0x3bc790ae5418ff0e => {
2039 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2040 let mut req = fidl::new_empty!(
2041 NetworkRegistryUpdateRequest,
2042 fidl::encoding::DefaultFuchsiaResourceDialect
2043 );
2044 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
2045 let control_handle =
2046 NetworkRegistryControlHandle { inner: this.inner.clone() };
2047 Ok(NetworkRegistryRequest::Update {
2048 network: req.network,
2049
2050 responder: NetworkRegistryUpdateResponder {
2051 control_handle: std::mem::ManuallyDrop::new(control_handle),
2052 tx_id: header.tx_id,
2053 },
2054 })
2055 }
2056 0x1302df41dca6379e => {
2057 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2058 let mut req = fidl::new_empty!(
2059 NetworkRegistryRemoveRequest,
2060 fidl::encoding::DefaultFuchsiaResourceDialect
2061 );
2062 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
2063 let control_handle =
2064 NetworkRegistryControlHandle { inner: this.inner.clone() };
2065 Ok(NetworkRegistryRequest::Remove {
2066 network_id: req.network_id,
2067
2068 responder: NetworkRegistryRemoveResponder {
2069 control_handle: std::mem::ManuallyDrop::new(control_handle),
2070 tx_id: header.tx_id,
2071 },
2072 })
2073 }
2074 _ => Err(fidl::Error::UnknownOrdinal {
2075 ordinal: header.ordinal,
2076 protocol_name:
2077 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2078 }),
2079 }))
2080 },
2081 )
2082 }
2083}
2084
2085#[derive(Debug)]
2086pub enum NetworkRegistryRequest {
2087 SetDefault {
2091 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
2092 responder: NetworkRegistrySetDefaultResponder,
2093 },
2094 Add { network: Network, responder: NetworkRegistryAddResponder },
2099 Update { network: Network, responder: NetworkRegistryUpdateResponder },
2103 Remove { network_id: u32, responder: NetworkRegistryRemoveResponder },
2107}
2108
2109impl NetworkRegistryRequest {
2110 #[allow(irrefutable_let_patterns)]
2111 pub fn into_set_default(
2112 self,
2113 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, NetworkRegistrySetDefaultResponder)>
2114 {
2115 if let NetworkRegistryRequest::SetDefault { network_id, responder } = self {
2116 Some((network_id, responder))
2117 } else {
2118 None
2119 }
2120 }
2121
2122 #[allow(irrefutable_let_patterns)]
2123 pub fn into_add(self) -> Option<(Network, NetworkRegistryAddResponder)> {
2124 if let NetworkRegistryRequest::Add { network, responder } = self {
2125 Some((network, responder))
2126 } else {
2127 None
2128 }
2129 }
2130
2131 #[allow(irrefutable_let_patterns)]
2132 pub fn into_update(self) -> Option<(Network, NetworkRegistryUpdateResponder)> {
2133 if let NetworkRegistryRequest::Update { network, responder } = self {
2134 Some((network, responder))
2135 } else {
2136 None
2137 }
2138 }
2139
2140 #[allow(irrefutable_let_patterns)]
2141 pub fn into_remove(self) -> Option<(u32, NetworkRegistryRemoveResponder)> {
2142 if let NetworkRegistryRequest::Remove { network_id, responder } = self {
2143 Some((network_id, responder))
2144 } else {
2145 None
2146 }
2147 }
2148
2149 pub fn method_name(&self) -> &'static str {
2151 match *self {
2152 NetworkRegistryRequest::SetDefault { .. } => "set_default",
2153 NetworkRegistryRequest::Add { .. } => "add",
2154 NetworkRegistryRequest::Update { .. } => "update",
2155 NetworkRegistryRequest::Remove { .. } => "remove",
2156 }
2157 }
2158}
2159
2160#[derive(Debug, Clone)]
2161pub struct NetworkRegistryControlHandle {
2162 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2163}
2164
2165impl fidl::endpoints::ControlHandle for NetworkRegistryControlHandle {
2166 fn shutdown(&self) {
2167 self.inner.shutdown()
2168 }
2169 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2170 self.inner.shutdown_with_epitaph(status)
2171 }
2172
2173 fn is_closed(&self) -> bool {
2174 self.inner.channel().is_closed()
2175 }
2176 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2177 self.inner.channel().on_closed()
2178 }
2179
2180 #[cfg(target_os = "fuchsia")]
2181 fn signal_peer(
2182 &self,
2183 clear_mask: zx::Signals,
2184 set_mask: zx::Signals,
2185 ) -> Result<(), zx_status::Status> {
2186 use fidl::Peered;
2187 self.inner.channel().signal_peer(clear_mask, set_mask)
2188 }
2189}
2190
2191impl NetworkRegistryControlHandle {}
2192
2193#[must_use = "FIDL methods require a response to be sent"]
2194#[derive(Debug)]
2195pub struct NetworkRegistrySetDefaultResponder {
2196 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2197 tx_id: u32,
2198}
2199
2200impl std::ops::Drop for NetworkRegistrySetDefaultResponder {
2204 fn drop(&mut self) {
2205 self.control_handle.shutdown();
2206 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2208 }
2209}
2210
2211impl fidl::endpoints::Responder for NetworkRegistrySetDefaultResponder {
2212 type ControlHandle = NetworkRegistryControlHandle;
2213
2214 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2215 &self.control_handle
2216 }
2217
2218 fn drop_without_shutdown(mut self) {
2219 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2221 std::mem::forget(self);
2223 }
2224}
2225
2226impl NetworkRegistrySetDefaultResponder {
2227 pub fn send(
2231 self,
2232 mut result: Result<(), NetworkRegistrySetDefaultError>,
2233 ) -> Result<(), fidl::Error> {
2234 let _result = self.send_raw(result);
2235 if _result.is_err() {
2236 self.control_handle.shutdown();
2237 }
2238 self.drop_without_shutdown();
2239 _result
2240 }
2241
2242 pub fn send_no_shutdown_on_err(
2244 self,
2245 mut result: Result<(), NetworkRegistrySetDefaultError>,
2246 ) -> Result<(), fidl::Error> {
2247 let _result = self.send_raw(result);
2248 self.drop_without_shutdown();
2249 _result
2250 }
2251
2252 fn send_raw(
2253 &self,
2254 mut result: Result<(), NetworkRegistrySetDefaultError>,
2255 ) -> Result<(), fidl::Error> {
2256 self.control_handle.inner.send::<fidl::encoding::ResultType<
2257 fidl::encoding::EmptyStruct,
2258 NetworkRegistrySetDefaultError,
2259 >>(
2260 result,
2261 self.tx_id,
2262 0x787930c67b8cf82c,
2263 fidl::encoding::DynamicFlags::empty(),
2264 )
2265 }
2266}
2267
2268#[must_use = "FIDL methods require a response to be sent"]
2269#[derive(Debug)]
2270pub struct NetworkRegistryAddResponder {
2271 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2272 tx_id: u32,
2273}
2274
2275impl std::ops::Drop for NetworkRegistryAddResponder {
2279 fn drop(&mut self) {
2280 self.control_handle.shutdown();
2281 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2283 }
2284}
2285
2286impl fidl::endpoints::Responder for NetworkRegistryAddResponder {
2287 type ControlHandle = NetworkRegistryControlHandle;
2288
2289 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2290 &self.control_handle
2291 }
2292
2293 fn drop_without_shutdown(mut self) {
2294 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2296 std::mem::forget(self);
2298 }
2299}
2300
2301impl NetworkRegistryAddResponder {
2302 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
2306 let _result = self.send_raw(result);
2307 if _result.is_err() {
2308 self.control_handle.shutdown();
2309 }
2310 self.drop_without_shutdown();
2311 _result
2312 }
2313
2314 pub fn send_no_shutdown_on_err(
2316 self,
2317 mut result: Result<(), NetworkRegistryAddError>,
2318 ) -> Result<(), fidl::Error> {
2319 let _result = self.send_raw(result);
2320 self.drop_without_shutdown();
2321 _result
2322 }
2323
2324 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
2325 self.control_handle.inner.send::<fidl::encoding::ResultType<
2326 fidl::encoding::EmptyStruct,
2327 NetworkRegistryAddError,
2328 >>(
2329 result,
2330 self.tx_id,
2331 0x197e70a1cbeab3ad,
2332 fidl::encoding::DynamicFlags::empty(),
2333 )
2334 }
2335}
2336
2337#[must_use = "FIDL methods require a response to be sent"]
2338#[derive(Debug)]
2339pub struct NetworkRegistryUpdateResponder {
2340 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2341 tx_id: u32,
2342}
2343
2344impl std::ops::Drop for NetworkRegistryUpdateResponder {
2348 fn drop(&mut self) {
2349 self.control_handle.shutdown();
2350 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2352 }
2353}
2354
2355impl fidl::endpoints::Responder for NetworkRegistryUpdateResponder {
2356 type ControlHandle = NetworkRegistryControlHandle;
2357
2358 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2359 &self.control_handle
2360 }
2361
2362 fn drop_without_shutdown(mut self) {
2363 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2365 std::mem::forget(self);
2367 }
2368}
2369
2370impl NetworkRegistryUpdateResponder {
2371 pub fn send(
2375 self,
2376 mut result: Result<(), NetworkRegistryUpdateError>,
2377 ) -> Result<(), fidl::Error> {
2378 let _result = self.send_raw(result);
2379 if _result.is_err() {
2380 self.control_handle.shutdown();
2381 }
2382 self.drop_without_shutdown();
2383 _result
2384 }
2385
2386 pub fn send_no_shutdown_on_err(
2388 self,
2389 mut result: Result<(), NetworkRegistryUpdateError>,
2390 ) -> Result<(), fidl::Error> {
2391 let _result = self.send_raw(result);
2392 self.drop_without_shutdown();
2393 _result
2394 }
2395
2396 fn send_raw(
2397 &self,
2398 mut result: Result<(), NetworkRegistryUpdateError>,
2399 ) -> Result<(), fidl::Error> {
2400 self.control_handle.inner.send::<fidl::encoding::ResultType<
2401 fidl::encoding::EmptyStruct,
2402 NetworkRegistryUpdateError,
2403 >>(
2404 result,
2405 self.tx_id,
2406 0x3bc790ae5418ff0e,
2407 fidl::encoding::DynamicFlags::empty(),
2408 )
2409 }
2410}
2411
2412#[must_use = "FIDL methods require a response to be sent"]
2413#[derive(Debug)]
2414pub struct NetworkRegistryRemoveResponder {
2415 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2416 tx_id: u32,
2417}
2418
2419impl std::ops::Drop for NetworkRegistryRemoveResponder {
2423 fn drop(&mut self) {
2424 self.control_handle.shutdown();
2425 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2427 }
2428}
2429
2430impl fidl::endpoints::Responder for NetworkRegistryRemoveResponder {
2431 type ControlHandle = NetworkRegistryControlHandle;
2432
2433 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2434 &self.control_handle
2435 }
2436
2437 fn drop_without_shutdown(mut self) {
2438 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2440 std::mem::forget(self);
2442 }
2443}
2444
2445impl NetworkRegistryRemoveResponder {
2446 pub fn send(
2450 self,
2451 mut result: Result<(), NetworkRegistryRemoveError>,
2452 ) -> Result<(), fidl::Error> {
2453 let _result = self.send_raw(result);
2454 if _result.is_err() {
2455 self.control_handle.shutdown();
2456 }
2457 self.drop_without_shutdown();
2458 _result
2459 }
2460
2461 pub fn send_no_shutdown_on_err(
2463 self,
2464 mut result: Result<(), NetworkRegistryRemoveError>,
2465 ) -> Result<(), fidl::Error> {
2466 let _result = self.send_raw(result);
2467 self.drop_without_shutdown();
2468 _result
2469 }
2470
2471 fn send_raw(
2472 &self,
2473 mut result: Result<(), NetworkRegistryRemoveError>,
2474 ) -> Result<(), fidl::Error> {
2475 self.control_handle.inner.send::<fidl::encoding::ResultType<
2476 fidl::encoding::EmptyStruct,
2477 NetworkRegistryRemoveError,
2478 >>(
2479 result,
2480 self.tx_id,
2481 0x1302df41dca6379e,
2482 fidl::encoding::DynamicFlags::empty(),
2483 )
2484 }
2485}
2486
2487#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2488pub struct StarnixNetworksMarker;
2489
2490impl fidl::endpoints::ProtocolMarker for StarnixNetworksMarker {
2491 type Proxy = StarnixNetworksProxy;
2492 type RequestStream = StarnixNetworksRequestStream;
2493 #[cfg(target_os = "fuchsia")]
2494 type SynchronousProxy = StarnixNetworksSynchronousProxy;
2495
2496 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.StarnixNetworks";
2497}
2498impl fidl::endpoints::DiscoverableProtocolMarker for StarnixNetworksMarker {}
2499
2500pub trait StarnixNetworksProxyInterface: Send + Sync {
2501 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
2502 + Send;
2503 fn r#set_default(
2504 &self,
2505 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2506 ) -> Self::SetDefaultResponseFut;
2507 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
2508 + Send;
2509 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
2510 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
2511 + Send;
2512 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
2513 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
2514 + Send;
2515 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
2516}
2517#[derive(Debug)]
2518#[cfg(target_os = "fuchsia")]
2519pub struct StarnixNetworksSynchronousProxy {
2520 client: fidl::client::sync::Client,
2521}
2522
2523#[cfg(target_os = "fuchsia")]
2524impl fidl::endpoints::SynchronousProxy for StarnixNetworksSynchronousProxy {
2525 type Proxy = StarnixNetworksProxy;
2526 type Protocol = StarnixNetworksMarker;
2527
2528 fn from_channel(inner: fidl::Channel) -> Self {
2529 Self::new(inner)
2530 }
2531
2532 fn into_channel(self) -> fidl::Channel {
2533 self.client.into_channel()
2534 }
2535
2536 fn as_channel(&self) -> &fidl::Channel {
2537 self.client.as_channel()
2538 }
2539}
2540
2541#[cfg(target_os = "fuchsia")]
2542impl StarnixNetworksSynchronousProxy {
2543 pub fn new(channel: fidl::Channel) -> Self {
2544 let protocol_name = <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2545 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2546 }
2547
2548 pub fn into_channel(self) -> fidl::Channel {
2549 self.client.into_channel()
2550 }
2551
2552 pub fn wait_for_event(
2555 &self,
2556 deadline: zx::MonotonicInstant,
2557 ) -> Result<StarnixNetworksEvent, fidl::Error> {
2558 StarnixNetworksEvent::decode(self.client.wait_for_event(deadline)?)
2559 }
2560
2561 pub fn r#set_default(
2565 &self,
2566 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2567 ___deadline: zx::MonotonicInstant,
2568 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
2569 let _response =
2570 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
2571 fidl::encoding::EmptyStruct,
2572 NetworkRegistrySetDefaultError,
2573 >>(
2574 (network_id,),
2575 0x787930c67b8cf82c,
2576 fidl::encoding::DynamicFlags::empty(),
2577 ___deadline,
2578 )?;
2579 Ok(_response.map(|x| x))
2580 }
2581
2582 pub fn r#add(
2587 &self,
2588 mut network: &Network,
2589 ___deadline: zx::MonotonicInstant,
2590 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
2591 let _response =
2592 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
2593 fidl::encoding::EmptyStruct,
2594 NetworkRegistryAddError,
2595 >>(
2596 (network,),
2597 0x197e70a1cbeab3ad,
2598 fidl::encoding::DynamicFlags::empty(),
2599 ___deadline,
2600 )?;
2601 Ok(_response.map(|x| x))
2602 }
2603
2604 pub fn r#update(
2608 &self,
2609 mut network: &Network,
2610 ___deadline: zx::MonotonicInstant,
2611 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
2612 let _response =
2613 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
2614 fidl::encoding::EmptyStruct,
2615 NetworkRegistryUpdateError,
2616 >>(
2617 (network,),
2618 0x3bc790ae5418ff0e,
2619 fidl::encoding::DynamicFlags::empty(),
2620 ___deadline,
2621 )?;
2622 Ok(_response.map(|x| x))
2623 }
2624
2625 pub fn r#remove(
2629 &self,
2630 mut network_id: u32,
2631 ___deadline: zx::MonotonicInstant,
2632 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
2633 let _response =
2634 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
2635 fidl::encoding::EmptyStruct,
2636 NetworkRegistryRemoveError,
2637 >>(
2638 (network_id,),
2639 0x1302df41dca6379e,
2640 fidl::encoding::DynamicFlags::empty(),
2641 ___deadline,
2642 )?;
2643 Ok(_response.map(|x| x))
2644 }
2645}
2646
2647#[cfg(target_os = "fuchsia")]
2648impl From<StarnixNetworksSynchronousProxy> for zx::NullableHandle {
2649 fn from(value: StarnixNetworksSynchronousProxy) -> Self {
2650 value.into_channel().into()
2651 }
2652}
2653
2654#[cfg(target_os = "fuchsia")]
2655impl From<fidl::Channel> for StarnixNetworksSynchronousProxy {
2656 fn from(value: fidl::Channel) -> Self {
2657 Self::new(value)
2658 }
2659}
2660
2661#[cfg(target_os = "fuchsia")]
2662impl fidl::endpoints::FromClient for StarnixNetworksSynchronousProxy {
2663 type Protocol = StarnixNetworksMarker;
2664
2665 fn from_client(value: fidl::endpoints::ClientEnd<StarnixNetworksMarker>) -> Self {
2666 Self::new(value.into_channel())
2667 }
2668}
2669
2670#[derive(Debug, Clone)]
2671pub struct StarnixNetworksProxy {
2672 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2673}
2674
2675impl fidl::endpoints::Proxy for StarnixNetworksProxy {
2676 type Protocol = StarnixNetworksMarker;
2677
2678 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2679 Self::new(inner)
2680 }
2681
2682 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2683 self.client.into_channel().map_err(|client| Self { client })
2684 }
2685
2686 fn as_channel(&self) -> &::fidl::AsyncChannel {
2687 self.client.as_channel()
2688 }
2689}
2690
2691impl StarnixNetworksProxy {
2692 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2694 let protocol_name = <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2695 Self { client: fidl::client::Client::new(channel, protocol_name) }
2696 }
2697
2698 pub fn take_event_stream(&self) -> StarnixNetworksEventStream {
2704 StarnixNetworksEventStream { event_receiver: self.client.take_event_receiver() }
2705 }
2706
2707 pub fn r#set_default(
2711 &self,
2712 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2713 ) -> fidl::client::QueryResponseFut<
2714 NetworkRegistrySetDefaultResult,
2715 fidl::encoding::DefaultFuchsiaResourceDialect,
2716 > {
2717 StarnixNetworksProxyInterface::r#set_default(self, network_id)
2718 }
2719
2720 pub fn r#add(
2725 &self,
2726 mut network: &Network,
2727 ) -> fidl::client::QueryResponseFut<
2728 NetworkRegistryAddResult,
2729 fidl::encoding::DefaultFuchsiaResourceDialect,
2730 > {
2731 StarnixNetworksProxyInterface::r#add(self, network)
2732 }
2733
2734 pub fn r#update(
2738 &self,
2739 mut network: &Network,
2740 ) -> fidl::client::QueryResponseFut<
2741 NetworkRegistryUpdateResult,
2742 fidl::encoding::DefaultFuchsiaResourceDialect,
2743 > {
2744 StarnixNetworksProxyInterface::r#update(self, network)
2745 }
2746
2747 pub fn r#remove(
2751 &self,
2752 mut network_id: u32,
2753 ) -> fidl::client::QueryResponseFut<
2754 NetworkRegistryRemoveResult,
2755 fidl::encoding::DefaultFuchsiaResourceDialect,
2756 > {
2757 StarnixNetworksProxyInterface::r#remove(self, network_id)
2758 }
2759}
2760
2761impl StarnixNetworksProxyInterface for StarnixNetworksProxy {
2762 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
2763 NetworkRegistrySetDefaultResult,
2764 fidl::encoding::DefaultFuchsiaResourceDialect,
2765 >;
2766 fn r#set_default(
2767 &self,
2768 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2769 ) -> Self::SetDefaultResponseFut {
2770 fn _decode(
2771 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2772 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
2773 let _response = fidl::client::decode_transaction_body::<
2774 fidl::encoding::ResultType<
2775 fidl::encoding::EmptyStruct,
2776 NetworkRegistrySetDefaultError,
2777 >,
2778 fidl::encoding::DefaultFuchsiaResourceDialect,
2779 0x787930c67b8cf82c,
2780 >(_buf?)?;
2781 Ok(_response.map(|x| x))
2782 }
2783 self.client.send_query_and_decode::<
2784 NetworkRegistrySetDefaultRequest,
2785 NetworkRegistrySetDefaultResult,
2786 >(
2787 (network_id,),
2788 0x787930c67b8cf82c,
2789 fidl::encoding::DynamicFlags::empty(),
2790 _decode,
2791 )
2792 }
2793
2794 type AddResponseFut = fidl::client::QueryResponseFut<
2795 NetworkRegistryAddResult,
2796 fidl::encoding::DefaultFuchsiaResourceDialect,
2797 >;
2798 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
2799 fn _decode(
2800 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2801 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
2802 let _response = fidl::client::decode_transaction_body::<
2803 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
2804 fidl::encoding::DefaultFuchsiaResourceDialect,
2805 0x197e70a1cbeab3ad,
2806 >(_buf?)?;
2807 Ok(_response.map(|x| x))
2808 }
2809 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
2810 (network,),
2811 0x197e70a1cbeab3ad,
2812 fidl::encoding::DynamicFlags::empty(),
2813 _decode,
2814 )
2815 }
2816
2817 type UpdateResponseFut = fidl::client::QueryResponseFut<
2818 NetworkRegistryUpdateResult,
2819 fidl::encoding::DefaultFuchsiaResourceDialect,
2820 >;
2821 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
2822 fn _decode(
2823 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2824 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
2825 let _response = fidl::client::decode_transaction_body::<
2826 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
2827 fidl::encoding::DefaultFuchsiaResourceDialect,
2828 0x3bc790ae5418ff0e,
2829 >(_buf?)?;
2830 Ok(_response.map(|x| x))
2831 }
2832 self.client
2833 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
2834 (network,),
2835 0x3bc790ae5418ff0e,
2836 fidl::encoding::DynamicFlags::empty(),
2837 _decode,
2838 )
2839 }
2840
2841 type RemoveResponseFut = fidl::client::QueryResponseFut<
2842 NetworkRegistryRemoveResult,
2843 fidl::encoding::DefaultFuchsiaResourceDialect,
2844 >;
2845 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
2846 fn _decode(
2847 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2848 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
2849 let _response = fidl::client::decode_transaction_body::<
2850 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
2851 fidl::encoding::DefaultFuchsiaResourceDialect,
2852 0x1302df41dca6379e,
2853 >(_buf?)?;
2854 Ok(_response.map(|x| x))
2855 }
2856 self.client
2857 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
2858 (network_id,),
2859 0x1302df41dca6379e,
2860 fidl::encoding::DynamicFlags::empty(),
2861 _decode,
2862 )
2863 }
2864}
2865
2866pub struct StarnixNetworksEventStream {
2867 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2868}
2869
2870impl std::marker::Unpin for StarnixNetworksEventStream {}
2871
2872impl futures::stream::FusedStream for StarnixNetworksEventStream {
2873 fn is_terminated(&self) -> bool {
2874 self.event_receiver.is_terminated()
2875 }
2876}
2877
2878impl futures::Stream for StarnixNetworksEventStream {
2879 type Item = Result<StarnixNetworksEvent, fidl::Error>;
2880
2881 fn poll_next(
2882 mut self: std::pin::Pin<&mut Self>,
2883 cx: &mut std::task::Context<'_>,
2884 ) -> std::task::Poll<Option<Self::Item>> {
2885 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2886 &mut self.event_receiver,
2887 cx
2888 )?) {
2889 Some(buf) => std::task::Poll::Ready(Some(StarnixNetworksEvent::decode(buf))),
2890 None => std::task::Poll::Ready(None),
2891 }
2892 }
2893}
2894
2895#[derive(Debug)]
2896pub enum StarnixNetworksEvent {}
2897
2898impl StarnixNetworksEvent {
2899 fn decode(
2901 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2902 ) -> Result<StarnixNetworksEvent, fidl::Error> {
2903 let (bytes, _handles) = buf.split_mut();
2904 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2905 debug_assert_eq!(tx_header.tx_id, 0);
2906 match tx_header.ordinal {
2907 _ => Err(fidl::Error::UnknownOrdinal {
2908 ordinal: tx_header.ordinal,
2909 protocol_name:
2910 <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2911 }),
2912 }
2913 }
2914}
2915
2916pub struct StarnixNetworksRequestStream {
2918 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2919 is_terminated: bool,
2920}
2921
2922impl std::marker::Unpin for StarnixNetworksRequestStream {}
2923
2924impl futures::stream::FusedStream for StarnixNetworksRequestStream {
2925 fn is_terminated(&self) -> bool {
2926 self.is_terminated
2927 }
2928}
2929
2930impl fidl::endpoints::RequestStream for StarnixNetworksRequestStream {
2931 type Protocol = StarnixNetworksMarker;
2932 type ControlHandle = StarnixNetworksControlHandle;
2933
2934 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2935 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2936 }
2937
2938 fn control_handle(&self) -> Self::ControlHandle {
2939 StarnixNetworksControlHandle { inner: self.inner.clone() }
2940 }
2941
2942 fn into_inner(
2943 self,
2944 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2945 {
2946 (self.inner, self.is_terminated)
2947 }
2948
2949 fn from_inner(
2950 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2951 is_terminated: bool,
2952 ) -> Self {
2953 Self { inner, is_terminated }
2954 }
2955}
2956
2957impl futures::Stream for StarnixNetworksRequestStream {
2958 type Item = Result<StarnixNetworksRequest, fidl::Error>;
2959
2960 fn poll_next(
2961 mut self: std::pin::Pin<&mut Self>,
2962 cx: &mut std::task::Context<'_>,
2963 ) -> std::task::Poll<Option<Self::Item>> {
2964 let this = &mut *self;
2965 if this.inner.check_shutdown(cx) {
2966 this.is_terminated = true;
2967 return std::task::Poll::Ready(None);
2968 }
2969 if this.is_terminated {
2970 panic!("polled StarnixNetworksRequestStream after completion");
2971 }
2972 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2973 |bytes, handles| {
2974 match this.inner.channel().read_etc(cx, bytes, handles) {
2975 std::task::Poll::Ready(Ok(())) => {}
2976 std::task::Poll::Pending => return std::task::Poll::Pending,
2977 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2978 this.is_terminated = true;
2979 return std::task::Poll::Ready(None);
2980 }
2981 std::task::Poll::Ready(Err(e)) => {
2982 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2983 e.into(),
2984 ))));
2985 }
2986 }
2987
2988 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2990
2991 std::task::Poll::Ready(Some(match header.ordinal {
2992 0x787930c67b8cf82c => {
2993 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2994 let mut req = fidl::new_empty!(
2995 NetworkRegistrySetDefaultRequest,
2996 fidl::encoding::DefaultFuchsiaResourceDialect
2997 );
2998 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
2999 let control_handle =
3000 StarnixNetworksControlHandle { inner: this.inner.clone() };
3001 Ok(StarnixNetworksRequest::SetDefault {
3002 network_id: req.network_id,
3003
3004 responder: StarnixNetworksSetDefaultResponder {
3005 control_handle: std::mem::ManuallyDrop::new(control_handle),
3006 tx_id: header.tx_id,
3007 },
3008 })
3009 }
3010 0x197e70a1cbeab3ad => {
3011 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3012 let mut req = fidl::new_empty!(
3013 NetworkRegistryAddRequest,
3014 fidl::encoding::DefaultFuchsiaResourceDialect
3015 );
3016 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
3017 let control_handle =
3018 StarnixNetworksControlHandle { inner: this.inner.clone() };
3019 Ok(StarnixNetworksRequest::Add {
3020 network: req.network,
3021
3022 responder: StarnixNetworksAddResponder {
3023 control_handle: std::mem::ManuallyDrop::new(control_handle),
3024 tx_id: header.tx_id,
3025 },
3026 })
3027 }
3028 0x3bc790ae5418ff0e => {
3029 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3030 let mut req = fidl::new_empty!(
3031 NetworkRegistryUpdateRequest,
3032 fidl::encoding::DefaultFuchsiaResourceDialect
3033 );
3034 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
3035 let control_handle =
3036 StarnixNetworksControlHandle { inner: this.inner.clone() };
3037 Ok(StarnixNetworksRequest::Update {
3038 network: req.network,
3039
3040 responder: StarnixNetworksUpdateResponder {
3041 control_handle: std::mem::ManuallyDrop::new(control_handle),
3042 tx_id: header.tx_id,
3043 },
3044 })
3045 }
3046 0x1302df41dca6379e => {
3047 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3048 let mut req = fidl::new_empty!(
3049 NetworkRegistryRemoveRequest,
3050 fidl::encoding::DefaultFuchsiaResourceDialect
3051 );
3052 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
3053 let control_handle =
3054 StarnixNetworksControlHandle { inner: this.inner.clone() };
3055 Ok(StarnixNetworksRequest::Remove {
3056 network_id: req.network_id,
3057
3058 responder: StarnixNetworksRemoveResponder {
3059 control_handle: std::mem::ManuallyDrop::new(control_handle),
3060 tx_id: header.tx_id,
3061 },
3062 })
3063 }
3064 _ => Err(fidl::Error::UnknownOrdinal {
3065 ordinal: header.ordinal,
3066 protocol_name:
3067 <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3068 }),
3069 }))
3070 },
3071 )
3072 }
3073}
3074
3075#[derive(Debug)]
3080pub enum StarnixNetworksRequest {
3081 SetDefault {
3085 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
3086 responder: StarnixNetworksSetDefaultResponder,
3087 },
3088 Add { network: Network, responder: StarnixNetworksAddResponder },
3093 Update { network: Network, responder: StarnixNetworksUpdateResponder },
3097 Remove { network_id: u32, responder: StarnixNetworksRemoveResponder },
3101}
3102
3103impl StarnixNetworksRequest {
3104 #[allow(irrefutable_let_patterns)]
3105 pub fn into_set_default(
3106 self,
3107 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, StarnixNetworksSetDefaultResponder)>
3108 {
3109 if let StarnixNetworksRequest::SetDefault { network_id, responder } = self {
3110 Some((network_id, responder))
3111 } else {
3112 None
3113 }
3114 }
3115
3116 #[allow(irrefutable_let_patterns)]
3117 pub fn into_add(self) -> Option<(Network, StarnixNetworksAddResponder)> {
3118 if let StarnixNetworksRequest::Add { network, responder } = self {
3119 Some((network, responder))
3120 } else {
3121 None
3122 }
3123 }
3124
3125 #[allow(irrefutable_let_patterns)]
3126 pub fn into_update(self) -> Option<(Network, StarnixNetworksUpdateResponder)> {
3127 if let StarnixNetworksRequest::Update { network, responder } = self {
3128 Some((network, responder))
3129 } else {
3130 None
3131 }
3132 }
3133
3134 #[allow(irrefutable_let_patterns)]
3135 pub fn into_remove(self) -> Option<(u32, StarnixNetworksRemoveResponder)> {
3136 if let StarnixNetworksRequest::Remove { network_id, responder } = self {
3137 Some((network_id, responder))
3138 } else {
3139 None
3140 }
3141 }
3142
3143 pub fn method_name(&self) -> &'static str {
3145 match *self {
3146 StarnixNetworksRequest::SetDefault { .. } => "set_default",
3147 StarnixNetworksRequest::Add { .. } => "add",
3148 StarnixNetworksRequest::Update { .. } => "update",
3149 StarnixNetworksRequest::Remove { .. } => "remove",
3150 }
3151 }
3152}
3153
3154#[derive(Debug, Clone)]
3155pub struct StarnixNetworksControlHandle {
3156 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3157}
3158
3159impl fidl::endpoints::ControlHandle for StarnixNetworksControlHandle {
3160 fn shutdown(&self) {
3161 self.inner.shutdown()
3162 }
3163 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
3164 self.inner.shutdown_with_epitaph(status)
3165 }
3166
3167 fn is_closed(&self) -> bool {
3168 self.inner.channel().is_closed()
3169 }
3170 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3171 self.inner.channel().on_closed()
3172 }
3173
3174 #[cfg(target_os = "fuchsia")]
3175 fn signal_peer(
3176 &self,
3177 clear_mask: zx::Signals,
3178 set_mask: zx::Signals,
3179 ) -> Result<(), zx_status::Status> {
3180 use fidl::Peered;
3181 self.inner.channel().signal_peer(clear_mask, set_mask)
3182 }
3183}
3184
3185impl StarnixNetworksControlHandle {}
3186
3187#[must_use = "FIDL methods require a response to be sent"]
3188#[derive(Debug)]
3189pub struct StarnixNetworksSetDefaultResponder {
3190 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3191 tx_id: u32,
3192}
3193
3194impl std::ops::Drop for StarnixNetworksSetDefaultResponder {
3198 fn drop(&mut self) {
3199 self.control_handle.shutdown();
3200 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3202 }
3203}
3204
3205impl fidl::endpoints::Responder for StarnixNetworksSetDefaultResponder {
3206 type ControlHandle = StarnixNetworksControlHandle;
3207
3208 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3209 &self.control_handle
3210 }
3211
3212 fn drop_without_shutdown(mut self) {
3213 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3215 std::mem::forget(self);
3217 }
3218}
3219
3220impl StarnixNetworksSetDefaultResponder {
3221 pub fn send(
3225 self,
3226 mut result: Result<(), NetworkRegistrySetDefaultError>,
3227 ) -> Result<(), fidl::Error> {
3228 let _result = self.send_raw(result);
3229 if _result.is_err() {
3230 self.control_handle.shutdown();
3231 }
3232 self.drop_without_shutdown();
3233 _result
3234 }
3235
3236 pub fn send_no_shutdown_on_err(
3238 self,
3239 mut result: Result<(), NetworkRegistrySetDefaultError>,
3240 ) -> Result<(), fidl::Error> {
3241 let _result = self.send_raw(result);
3242 self.drop_without_shutdown();
3243 _result
3244 }
3245
3246 fn send_raw(
3247 &self,
3248 mut result: Result<(), NetworkRegistrySetDefaultError>,
3249 ) -> Result<(), fidl::Error> {
3250 self.control_handle.inner.send::<fidl::encoding::ResultType<
3251 fidl::encoding::EmptyStruct,
3252 NetworkRegistrySetDefaultError,
3253 >>(
3254 result,
3255 self.tx_id,
3256 0x787930c67b8cf82c,
3257 fidl::encoding::DynamicFlags::empty(),
3258 )
3259 }
3260}
3261
3262#[must_use = "FIDL methods require a response to be sent"]
3263#[derive(Debug)]
3264pub struct StarnixNetworksAddResponder {
3265 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3266 tx_id: u32,
3267}
3268
3269impl std::ops::Drop for StarnixNetworksAddResponder {
3273 fn drop(&mut self) {
3274 self.control_handle.shutdown();
3275 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3277 }
3278}
3279
3280impl fidl::endpoints::Responder for StarnixNetworksAddResponder {
3281 type ControlHandle = StarnixNetworksControlHandle;
3282
3283 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3284 &self.control_handle
3285 }
3286
3287 fn drop_without_shutdown(mut self) {
3288 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3290 std::mem::forget(self);
3292 }
3293}
3294
3295impl StarnixNetworksAddResponder {
3296 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
3300 let _result = self.send_raw(result);
3301 if _result.is_err() {
3302 self.control_handle.shutdown();
3303 }
3304 self.drop_without_shutdown();
3305 _result
3306 }
3307
3308 pub fn send_no_shutdown_on_err(
3310 self,
3311 mut result: Result<(), NetworkRegistryAddError>,
3312 ) -> Result<(), fidl::Error> {
3313 let _result = self.send_raw(result);
3314 self.drop_without_shutdown();
3315 _result
3316 }
3317
3318 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
3319 self.control_handle.inner.send::<fidl::encoding::ResultType<
3320 fidl::encoding::EmptyStruct,
3321 NetworkRegistryAddError,
3322 >>(
3323 result,
3324 self.tx_id,
3325 0x197e70a1cbeab3ad,
3326 fidl::encoding::DynamicFlags::empty(),
3327 )
3328 }
3329}
3330
3331#[must_use = "FIDL methods require a response to be sent"]
3332#[derive(Debug)]
3333pub struct StarnixNetworksUpdateResponder {
3334 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3335 tx_id: u32,
3336}
3337
3338impl std::ops::Drop for StarnixNetworksUpdateResponder {
3342 fn drop(&mut self) {
3343 self.control_handle.shutdown();
3344 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3346 }
3347}
3348
3349impl fidl::endpoints::Responder for StarnixNetworksUpdateResponder {
3350 type ControlHandle = StarnixNetworksControlHandle;
3351
3352 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3353 &self.control_handle
3354 }
3355
3356 fn drop_without_shutdown(mut self) {
3357 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3359 std::mem::forget(self);
3361 }
3362}
3363
3364impl StarnixNetworksUpdateResponder {
3365 pub fn send(
3369 self,
3370 mut result: Result<(), NetworkRegistryUpdateError>,
3371 ) -> Result<(), fidl::Error> {
3372 let _result = self.send_raw(result);
3373 if _result.is_err() {
3374 self.control_handle.shutdown();
3375 }
3376 self.drop_without_shutdown();
3377 _result
3378 }
3379
3380 pub fn send_no_shutdown_on_err(
3382 self,
3383 mut result: Result<(), NetworkRegistryUpdateError>,
3384 ) -> Result<(), fidl::Error> {
3385 let _result = self.send_raw(result);
3386 self.drop_without_shutdown();
3387 _result
3388 }
3389
3390 fn send_raw(
3391 &self,
3392 mut result: Result<(), NetworkRegistryUpdateError>,
3393 ) -> Result<(), fidl::Error> {
3394 self.control_handle.inner.send::<fidl::encoding::ResultType<
3395 fidl::encoding::EmptyStruct,
3396 NetworkRegistryUpdateError,
3397 >>(
3398 result,
3399 self.tx_id,
3400 0x3bc790ae5418ff0e,
3401 fidl::encoding::DynamicFlags::empty(),
3402 )
3403 }
3404}
3405
3406#[must_use = "FIDL methods require a response to be sent"]
3407#[derive(Debug)]
3408pub struct StarnixNetworksRemoveResponder {
3409 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3410 tx_id: u32,
3411}
3412
3413impl std::ops::Drop for StarnixNetworksRemoveResponder {
3417 fn drop(&mut self) {
3418 self.control_handle.shutdown();
3419 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3421 }
3422}
3423
3424impl fidl::endpoints::Responder for StarnixNetworksRemoveResponder {
3425 type ControlHandle = StarnixNetworksControlHandle;
3426
3427 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3428 &self.control_handle
3429 }
3430
3431 fn drop_without_shutdown(mut self) {
3432 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3434 std::mem::forget(self);
3436 }
3437}
3438
3439impl StarnixNetworksRemoveResponder {
3440 pub fn send(
3444 self,
3445 mut result: Result<(), NetworkRegistryRemoveError>,
3446 ) -> Result<(), fidl::Error> {
3447 let _result = self.send_raw(result);
3448 if _result.is_err() {
3449 self.control_handle.shutdown();
3450 }
3451 self.drop_without_shutdown();
3452 _result
3453 }
3454
3455 pub fn send_no_shutdown_on_err(
3457 self,
3458 mut result: Result<(), NetworkRegistryRemoveError>,
3459 ) -> Result<(), fidl::Error> {
3460 let _result = self.send_raw(result);
3461 self.drop_without_shutdown();
3462 _result
3463 }
3464
3465 fn send_raw(
3466 &self,
3467 mut result: Result<(), NetworkRegistryRemoveError>,
3468 ) -> Result<(), fidl::Error> {
3469 self.control_handle.inner.send::<fidl::encoding::ResultType<
3470 fidl::encoding::EmptyStruct,
3471 NetworkRegistryRemoveError,
3472 >>(
3473 result,
3474 self.tx_id,
3475 0x1302df41dca6379e,
3476 fidl::encoding::DynamicFlags::empty(),
3477 )
3478 }
3479}
3480
3481mod internal {
3482 use super::*;
3483}