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