1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_net_policy_socketproxy__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
15pub struct DnsServerWatcherMarker;
16
17impl fidl::endpoints::ProtocolMarker for DnsServerWatcherMarker {
18 type Proxy = DnsServerWatcherProxy;
19 type RequestStream = DnsServerWatcherRequestStream;
20 #[cfg(target_os = "fuchsia")]
21 type SynchronousProxy = DnsServerWatcherSynchronousProxy;
22
23 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.DnsServerWatcher";
24}
25impl fidl::endpoints::DiscoverableProtocolMarker for DnsServerWatcherMarker {}
26
27pub trait DnsServerWatcherProxyInterface: Send + Sync {
28 type WatchServersResponseFut: std::future::Future<Output = Result<Vec<DnsServerList>, fidl::Error>>
29 + Send;
30 fn r#watch_servers(&self) -> Self::WatchServersResponseFut;
31}
32#[derive(Debug)]
33#[cfg(target_os = "fuchsia")]
34pub struct DnsServerWatcherSynchronousProxy {
35 client: fidl::client::sync::Client,
36}
37
38#[cfg(target_os = "fuchsia")]
39impl fidl::endpoints::SynchronousProxy for DnsServerWatcherSynchronousProxy {
40 type Proxy = DnsServerWatcherProxy;
41 type Protocol = DnsServerWatcherMarker;
42
43 fn from_channel(inner: fidl::Channel) -> Self {
44 Self::new(inner)
45 }
46
47 fn into_channel(self) -> fidl::Channel {
48 self.client.into_channel()
49 }
50
51 fn as_channel(&self) -> &fidl::Channel {
52 self.client.as_channel()
53 }
54}
55
56#[cfg(target_os = "fuchsia")]
57impl DnsServerWatcherSynchronousProxy {
58 pub fn new(channel: fidl::Channel) -> Self {
59 let protocol_name = <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
60 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
61 }
62
63 pub fn into_channel(self) -> fidl::Channel {
64 self.client.into_channel()
65 }
66
67 pub fn wait_for_event(
70 &self,
71 deadline: zx::MonotonicInstant,
72 ) -> Result<DnsServerWatcherEvent, fidl::Error> {
73 DnsServerWatcherEvent::decode(self.client.wait_for_event(deadline)?)
74 }
75
76 pub fn r#watch_servers(
90 &self,
91 ___deadline: zx::MonotonicInstant,
92 ) -> Result<Vec<DnsServerList>, fidl::Error> {
93 let _response = self
94 .client
95 .send_query::<fidl::encoding::EmptyPayload, DnsServerWatcherWatchServersResponse>(
96 (),
97 0x767ad6d8df671383,
98 fidl::encoding::DynamicFlags::empty(),
99 ___deadline,
100 )?;
101 Ok(_response.servers)
102 }
103}
104
105#[cfg(target_os = "fuchsia")]
106impl From<DnsServerWatcherSynchronousProxy> for zx::NullableHandle {
107 fn from(value: DnsServerWatcherSynchronousProxy) -> Self {
108 value.into_channel().into()
109 }
110}
111
112#[cfg(target_os = "fuchsia")]
113impl From<fidl::Channel> for DnsServerWatcherSynchronousProxy {
114 fn from(value: fidl::Channel) -> Self {
115 Self::new(value)
116 }
117}
118
119#[cfg(target_os = "fuchsia")]
120impl fidl::endpoints::FromClient for DnsServerWatcherSynchronousProxy {
121 type Protocol = DnsServerWatcherMarker;
122
123 fn from_client(value: fidl::endpoints::ClientEnd<DnsServerWatcherMarker>) -> Self {
124 Self::new(value.into_channel())
125 }
126}
127
128#[derive(Debug, Clone)]
129pub struct DnsServerWatcherProxy {
130 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
131}
132
133impl fidl::endpoints::Proxy for DnsServerWatcherProxy {
134 type Protocol = DnsServerWatcherMarker;
135
136 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
137 Self::new(inner)
138 }
139
140 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
141 self.client.into_channel().map_err(|client| Self { client })
142 }
143
144 fn as_channel(&self) -> &::fidl::AsyncChannel {
145 self.client.as_channel()
146 }
147}
148
149impl DnsServerWatcherProxy {
150 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
152 let protocol_name = <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
153 Self { client: fidl::client::Client::new(channel, protocol_name) }
154 }
155
156 pub fn take_event_stream(&self) -> DnsServerWatcherEventStream {
162 DnsServerWatcherEventStream { event_receiver: self.client.take_event_receiver() }
163 }
164
165 pub fn r#watch_servers(
179 &self,
180 ) -> fidl::client::QueryResponseFut<
181 Vec<DnsServerList>,
182 fidl::encoding::DefaultFuchsiaResourceDialect,
183 > {
184 DnsServerWatcherProxyInterface::r#watch_servers(self)
185 }
186}
187
188impl DnsServerWatcherProxyInterface for DnsServerWatcherProxy {
189 type WatchServersResponseFut = fidl::client::QueryResponseFut<
190 Vec<DnsServerList>,
191 fidl::encoding::DefaultFuchsiaResourceDialect,
192 >;
193 fn r#watch_servers(&self) -> Self::WatchServersResponseFut {
194 fn _decode(
195 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
196 ) -> Result<Vec<DnsServerList>, fidl::Error> {
197 let _response = fidl::client::decode_transaction_body::<
198 DnsServerWatcherWatchServersResponse,
199 fidl::encoding::DefaultFuchsiaResourceDialect,
200 0x767ad6d8df671383,
201 >(_buf?)?;
202 Ok(_response.servers)
203 }
204 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<DnsServerList>>(
205 (),
206 0x767ad6d8df671383,
207 fidl::encoding::DynamicFlags::empty(),
208 _decode,
209 )
210 }
211}
212
213pub struct DnsServerWatcherEventStream {
214 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
215}
216
217impl std::marker::Unpin for DnsServerWatcherEventStream {}
218
219impl futures::stream::FusedStream for DnsServerWatcherEventStream {
220 fn is_terminated(&self) -> bool {
221 self.event_receiver.is_terminated()
222 }
223}
224
225impl futures::Stream for DnsServerWatcherEventStream {
226 type Item = Result<DnsServerWatcherEvent, fidl::Error>;
227
228 fn poll_next(
229 mut self: std::pin::Pin<&mut Self>,
230 cx: &mut std::task::Context<'_>,
231 ) -> std::task::Poll<Option<Self::Item>> {
232 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
233 &mut self.event_receiver,
234 cx
235 )?) {
236 Some(buf) => std::task::Poll::Ready(Some(DnsServerWatcherEvent::decode(buf))),
237 None => std::task::Poll::Ready(None),
238 }
239 }
240}
241
242#[derive(Debug)]
243pub enum DnsServerWatcherEvent {}
244
245impl DnsServerWatcherEvent {
246 fn decode(
248 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
249 ) -> Result<DnsServerWatcherEvent, fidl::Error> {
250 let (bytes, _handles) = buf.split_mut();
251 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
252 debug_assert_eq!(tx_header.tx_id, 0);
253 match tx_header.ordinal {
254 _ => Err(fidl::Error::UnknownOrdinal {
255 ordinal: tx_header.ordinal,
256 protocol_name:
257 <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
258 }),
259 }
260 }
261}
262
263pub struct DnsServerWatcherRequestStream {
265 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
266 is_terminated: bool,
267}
268
269impl std::marker::Unpin for DnsServerWatcherRequestStream {}
270
271impl futures::stream::FusedStream for DnsServerWatcherRequestStream {
272 fn is_terminated(&self) -> bool {
273 self.is_terminated
274 }
275}
276
277impl fidl::endpoints::RequestStream for DnsServerWatcherRequestStream {
278 type Protocol = DnsServerWatcherMarker;
279 type ControlHandle = DnsServerWatcherControlHandle;
280
281 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
282 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
283 }
284
285 fn control_handle(&self) -> Self::ControlHandle {
286 DnsServerWatcherControlHandle { inner: self.inner.clone() }
287 }
288
289 fn into_inner(
290 self,
291 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
292 {
293 (self.inner, self.is_terminated)
294 }
295
296 fn from_inner(
297 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
298 is_terminated: bool,
299 ) -> Self {
300 Self { inner, is_terminated }
301 }
302}
303
304impl futures::Stream for DnsServerWatcherRequestStream {
305 type Item = Result<DnsServerWatcherRequest, fidl::Error>;
306
307 fn poll_next(
308 mut self: std::pin::Pin<&mut Self>,
309 cx: &mut std::task::Context<'_>,
310 ) -> std::task::Poll<Option<Self::Item>> {
311 let this = &mut *self;
312 if this.inner.check_shutdown(cx) {
313 this.is_terminated = true;
314 return std::task::Poll::Ready(None);
315 }
316 if this.is_terminated {
317 panic!("polled DnsServerWatcherRequestStream after completion");
318 }
319 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
320 |bytes, handles| {
321 match this.inner.channel().read_etc(cx, bytes, handles) {
322 std::task::Poll::Ready(Ok(())) => {}
323 std::task::Poll::Pending => return std::task::Poll::Pending,
324 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
325 this.is_terminated = true;
326 return std::task::Poll::Ready(None);
327 }
328 std::task::Poll::Ready(Err(e)) => {
329 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
330 e.into(),
331 ))));
332 }
333 }
334
335 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
337
338 std::task::Poll::Ready(Some(match header.ordinal {
339 0x767ad6d8df671383 => {
340 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
341 let mut req = fidl::new_empty!(
342 fidl::encoding::EmptyPayload,
343 fidl::encoding::DefaultFuchsiaResourceDialect
344 );
345 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
346 let control_handle =
347 DnsServerWatcherControlHandle { inner: this.inner.clone() };
348 Ok(DnsServerWatcherRequest::WatchServers {
349 responder: DnsServerWatcherWatchServersResponder {
350 control_handle: std::mem::ManuallyDrop::new(control_handle),
351 tx_id: header.tx_id,
352 },
353 })
354 }
355 _ => Err(fidl::Error::UnknownOrdinal {
356 ordinal: header.ordinal,
357 protocol_name:
358 <DnsServerWatcherMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
359 }),
360 }))
361 },
362 )
363 }
364}
365
366#[derive(Debug)]
369pub enum DnsServerWatcherRequest {
370 WatchServers { responder: DnsServerWatcherWatchServersResponder },
384}
385
386impl DnsServerWatcherRequest {
387 #[allow(irrefutable_let_patterns)]
388 pub fn into_watch_servers(self) -> Option<(DnsServerWatcherWatchServersResponder)> {
389 if let DnsServerWatcherRequest::WatchServers { responder } = self {
390 Some((responder))
391 } else {
392 None
393 }
394 }
395
396 pub fn method_name(&self) -> &'static str {
398 match *self {
399 DnsServerWatcherRequest::WatchServers { .. } => "watch_servers",
400 }
401 }
402}
403
404#[derive(Debug, Clone)]
405pub struct DnsServerWatcherControlHandle {
406 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
407}
408
409impl fidl::endpoints::ControlHandle for DnsServerWatcherControlHandle {
410 fn shutdown(&self) {
411 self.inner.shutdown()
412 }
413
414 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
415 self.inner.shutdown_with_epitaph(status)
416 }
417
418 fn is_closed(&self) -> bool {
419 self.inner.channel().is_closed()
420 }
421 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
422 self.inner.channel().on_closed()
423 }
424
425 #[cfg(target_os = "fuchsia")]
426 fn signal_peer(
427 &self,
428 clear_mask: zx::Signals,
429 set_mask: zx::Signals,
430 ) -> Result<(), zx_status::Status> {
431 use fidl::Peered;
432 self.inner.channel().signal_peer(clear_mask, set_mask)
433 }
434}
435
436impl DnsServerWatcherControlHandle {}
437
438#[must_use = "FIDL methods require a response to be sent"]
439#[derive(Debug)]
440pub struct DnsServerWatcherWatchServersResponder {
441 control_handle: std::mem::ManuallyDrop<DnsServerWatcherControlHandle>,
442 tx_id: u32,
443}
444
445impl std::ops::Drop for DnsServerWatcherWatchServersResponder {
449 fn drop(&mut self) {
450 self.control_handle.shutdown();
451 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
453 }
454}
455
456impl fidl::endpoints::Responder for DnsServerWatcherWatchServersResponder {
457 type ControlHandle = DnsServerWatcherControlHandle;
458
459 fn control_handle(&self) -> &DnsServerWatcherControlHandle {
460 &self.control_handle
461 }
462
463 fn drop_without_shutdown(mut self) {
464 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
466 std::mem::forget(self);
468 }
469}
470
471impl DnsServerWatcherWatchServersResponder {
472 pub fn send(self, mut servers: &[DnsServerList]) -> Result<(), fidl::Error> {
476 let _result = self.send_raw(servers);
477 if _result.is_err() {
478 self.control_handle.shutdown();
479 }
480 self.drop_without_shutdown();
481 _result
482 }
483
484 pub fn send_no_shutdown_on_err(self, mut servers: &[DnsServerList]) -> Result<(), fidl::Error> {
486 let _result = self.send_raw(servers);
487 self.drop_without_shutdown();
488 _result
489 }
490
491 fn send_raw(&self, mut servers: &[DnsServerList]) -> Result<(), fidl::Error> {
492 self.control_handle.inner.send::<DnsServerWatcherWatchServersResponse>(
493 (servers,),
494 self.tx_id,
495 0x767ad6d8df671383,
496 fidl::encoding::DynamicFlags::empty(),
497 )
498 }
499}
500
501#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
502pub struct FuchsiaNetworksMarker;
503
504impl fidl::endpoints::ProtocolMarker for FuchsiaNetworksMarker {
505 type Proxy = FuchsiaNetworksProxy;
506 type RequestStream = FuchsiaNetworksRequestStream;
507 #[cfg(target_os = "fuchsia")]
508 type SynchronousProxy = FuchsiaNetworksSynchronousProxy;
509
510 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.FuchsiaNetworks";
511}
512impl fidl::endpoints::DiscoverableProtocolMarker for FuchsiaNetworksMarker {}
513
514pub trait FuchsiaNetworksProxyInterface: Send + Sync {
515 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
516 + Send;
517 fn r#set_default(
518 &self,
519 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
520 ) -> Self::SetDefaultResponseFut;
521 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
522 + Send;
523 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
524 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
525 + Send;
526 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
527 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
528 + Send;
529 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
530}
531#[derive(Debug)]
532#[cfg(target_os = "fuchsia")]
533pub struct FuchsiaNetworksSynchronousProxy {
534 client: fidl::client::sync::Client,
535}
536
537#[cfg(target_os = "fuchsia")]
538impl fidl::endpoints::SynchronousProxy for FuchsiaNetworksSynchronousProxy {
539 type Proxy = FuchsiaNetworksProxy;
540 type Protocol = FuchsiaNetworksMarker;
541
542 fn from_channel(inner: fidl::Channel) -> Self {
543 Self::new(inner)
544 }
545
546 fn into_channel(self) -> fidl::Channel {
547 self.client.into_channel()
548 }
549
550 fn as_channel(&self) -> &fidl::Channel {
551 self.client.as_channel()
552 }
553}
554
555#[cfg(target_os = "fuchsia")]
556impl FuchsiaNetworksSynchronousProxy {
557 pub fn new(channel: fidl::Channel) -> Self {
558 let protocol_name = <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
559 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
560 }
561
562 pub fn into_channel(self) -> fidl::Channel {
563 self.client.into_channel()
564 }
565
566 pub fn wait_for_event(
569 &self,
570 deadline: zx::MonotonicInstant,
571 ) -> Result<FuchsiaNetworksEvent, fidl::Error> {
572 FuchsiaNetworksEvent::decode(self.client.wait_for_event(deadline)?)
573 }
574
575 pub fn r#set_default(
579 &self,
580 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
581 ___deadline: zx::MonotonicInstant,
582 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
583 let _response =
584 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
585 fidl::encoding::EmptyStruct,
586 NetworkRegistrySetDefaultError,
587 >>(
588 (network_id,),
589 0x787930c67b8cf82c,
590 fidl::encoding::DynamicFlags::empty(),
591 ___deadline,
592 )?;
593 Ok(_response.map(|x| x))
594 }
595
596 pub fn r#add(
601 &self,
602 mut network: &Network,
603 ___deadline: zx::MonotonicInstant,
604 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
605 let _response =
606 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
607 fidl::encoding::EmptyStruct,
608 NetworkRegistryAddError,
609 >>(
610 (network,),
611 0x197e70a1cbeab3ad,
612 fidl::encoding::DynamicFlags::empty(),
613 ___deadline,
614 )?;
615 Ok(_response.map(|x| x))
616 }
617
618 pub fn r#update(
623 &self,
624 mut network: &Network,
625 ___deadline: zx::MonotonicInstant,
626 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
627 let _response =
628 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
629 fidl::encoding::EmptyStruct,
630 NetworkRegistryUpdateError,
631 >>(
632 (network,),
633 0x3bc790ae5418ff0e,
634 fidl::encoding::DynamicFlags::empty(),
635 ___deadline,
636 )?;
637 Ok(_response.map(|x| x))
638 }
639
640 pub fn r#remove(
645 &self,
646 mut network_id: u32,
647 ___deadline: zx::MonotonicInstant,
648 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
649 let _response =
650 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
651 fidl::encoding::EmptyStruct,
652 NetworkRegistryRemoveError,
653 >>(
654 (network_id,),
655 0x1302df41dca6379e,
656 fidl::encoding::DynamicFlags::empty(),
657 ___deadline,
658 )?;
659 Ok(_response.map(|x| x))
660 }
661}
662
663#[cfg(target_os = "fuchsia")]
664impl From<FuchsiaNetworksSynchronousProxy> for zx::NullableHandle {
665 fn from(value: FuchsiaNetworksSynchronousProxy) -> Self {
666 value.into_channel().into()
667 }
668}
669
670#[cfg(target_os = "fuchsia")]
671impl From<fidl::Channel> for FuchsiaNetworksSynchronousProxy {
672 fn from(value: fidl::Channel) -> Self {
673 Self::new(value)
674 }
675}
676
677#[cfg(target_os = "fuchsia")]
678impl fidl::endpoints::FromClient for FuchsiaNetworksSynchronousProxy {
679 type Protocol = FuchsiaNetworksMarker;
680
681 fn from_client(value: fidl::endpoints::ClientEnd<FuchsiaNetworksMarker>) -> Self {
682 Self::new(value.into_channel())
683 }
684}
685
686#[derive(Debug, Clone)]
687pub struct FuchsiaNetworksProxy {
688 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
689}
690
691impl fidl::endpoints::Proxy for FuchsiaNetworksProxy {
692 type Protocol = FuchsiaNetworksMarker;
693
694 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
695 Self::new(inner)
696 }
697
698 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
699 self.client.into_channel().map_err(|client| Self { client })
700 }
701
702 fn as_channel(&self) -> &::fidl::AsyncChannel {
703 self.client.as_channel()
704 }
705}
706
707impl FuchsiaNetworksProxy {
708 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
710 let protocol_name = <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
711 Self { client: fidl::client::Client::new(channel, protocol_name) }
712 }
713
714 pub fn take_event_stream(&self) -> FuchsiaNetworksEventStream {
720 FuchsiaNetworksEventStream { event_receiver: self.client.take_event_receiver() }
721 }
722
723 pub fn r#set_default(
727 &self,
728 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
729 ) -> fidl::client::QueryResponseFut<
730 NetworkRegistrySetDefaultResult,
731 fidl::encoding::DefaultFuchsiaResourceDialect,
732 > {
733 FuchsiaNetworksProxyInterface::r#set_default(self, network_id)
734 }
735
736 pub fn r#add(
741 &self,
742 mut network: &Network,
743 ) -> fidl::client::QueryResponseFut<
744 NetworkRegistryAddResult,
745 fidl::encoding::DefaultFuchsiaResourceDialect,
746 > {
747 FuchsiaNetworksProxyInterface::r#add(self, network)
748 }
749
750 pub fn r#update(
755 &self,
756 mut network: &Network,
757 ) -> fidl::client::QueryResponseFut<
758 NetworkRegistryUpdateResult,
759 fidl::encoding::DefaultFuchsiaResourceDialect,
760 > {
761 FuchsiaNetworksProxyInterface::r#update(self, network)
762 }
763
764 pub fn r#remove(
769 &self,
770 mut network_id: u32,
771 ) -> fidl::client::QueryResponseFut<
772 NetworkRegistryRemoveResult,
773 fidl::encoding::DefaultFuchsiaResourceDialect,
774 > {
775 FuchsiaNetworksProxyInterface::r#remove(self, network_id)
776 }
777}
778
779impl FuchsiaNetworksProxyInterface for FuchsiaNetworksProxy {
780 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
781 NetworkRegistrySetDefaultResult,
782 fidl::encoding::DefaultFuchsiaResourceDialect,
783 >;
784 fn r#set_default(
785 &self,
786 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
787 ) -> Self::SetDefaultResponseFut {
788 fn _decode(
789 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
790 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
791 let _response = fidl::client::decode_transaction_body::<
792 fidl::encoding::ResultType<
793 fidl::encoding::EmptyStruct,
794 NetworkRegistrySetDefaultError,
795 >,
796 fidl::encoding::DefaultFuchsiaResourceDialect,
797 0x787930c67b8cf82c,
798 >(_buf?)?;
799 Ok(_response.map(|x| x))
800 }
801 self.client.send_query_and_decode::<
802 NetworkRegistrySetDefaultRequest,
803 NetworkRegistrySetDefaultResult,
804 >(
805 (network_id,),
806 0x787930c67b8cf82c,
807 fidl::encoding::DynamicFlags::empty(),
808 _decode,
809 )
810 }
811
812 type AddResponseFut = fidl::client::QueryResponseFut<
813 NetworkRegistryAddResult,
814 fidl::encoding::DefaultFuchsiaResourceDialect,
815 >;
816 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
817 fn _decode(
818 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
819 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
820 let _response = fidl::client::decode_transaction_body::<
821 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
822 fidl::encoding::DefaultFuchsiaResourceDialect,
823 0x197e70a1cbeab3ad,
824 >(_buf?)?;
825 Ok(_response.map(|x| x))
826 }
827 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
828 (network,),
829 0x197e70a1cbeab3ad,
830 fidl::encoding::DynamicFlags::empty(),
831 _decode,
832 )
833 }
834
835 type UpdateResponseFut = fidl::client::QueryResponseFut<
836 NetworkRegistryUpdateResult,
837 fidl::encoding::DefaultFuchsiaResourceDialect,
838 >;
839 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
840 fn _decode(
841 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
842 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
843 let _response = fidl::client::decode_transaction_body::<
844 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
845 fidl::encoding::DefaultFuchsiaResourceDialect,
846 0x3bc790ae5418ff0e,
847 >(_buf?)?;
848 Ok(_response.map(|x| x))
849 }
850 self.client
851 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
852 (network,),
853 0x3bc790ae5418ff0e,
854 fidl::encoding::DynamicFlags::empty(),
855 _decode,
856 )
857 }
858
859 type RemoveResponseFut = fidl::client::QueryResponseFut<
860 NetworkRegistryRemoveResult,
861 fidl::encoding::DefaultFuchsiaResourceDialect,
862 >;
863 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
864 fn _decode(
865 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
866 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
867 let _response = fidl::client::decode_transaction_body::<
868 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
869 fidl::encoding::DefaultFuchsiaResourceDialect,
870 0x1302df41dca6379e,
871 >(_buf?)?;
872 Ok(_response.map(|x| x))
873 }
874 self.client
875 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
876 (network_id,),
877 0x1302df41dca6379e,
878 fidl::encoding::DynamicFlags::empty(),
879 _decode,
880 )
881 }
882}
883
884pub struct FuchsiaNetworksEventStream {
885 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
886}
887
888impl std::marker::Unpin for FuchsiaNetworksEventStream {}
889
890impl futures::stream::FusedStream for FuchsiaNetworksEventStream {
891 fn is_terminated(&self) -> bool {
892 self.event_receiver.is_terminated()
893 }
894}
895
896impl futures::Stream for FuchsiaNetworksEventStream {
897 type Item = Result<FuchsiaNetworksEvent, fidl::Error>;
898
899 fn poll_next(
900 mut self: std::pin::Pin<&mut Self>,
901 cx: &mut std::task::Context<'_>,
902 ) -> std::task::Poll<Option<Self::Item>> {
903 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
904 &mut self.event_receiver,
905 cx
906 )?) {
907 Some(buf) => std::task::Poll::Ready(Some(FuchsiaNetworksEvent::decode(buf))),
908 None => std::task::Poll::Ready(None),
909 }
910 }
911}
912
913#[derive(Debug)]
914pub enum FuchsiaNetworksEvent {}
915
916impl FuchsiaNetworksEvent {
917 fn decode(
919 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
920 ) -> Result<FuchsiaNetworksEvent, fidl::Error> {
921 let (bytes, _handles) = buf.split_mut();
922 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
923 debug_assert_eq!(tx_header.tx_id, 0);
924 match tx_header.ordinal {
925 _ => Err(fidl::Error::UnknownOrdinal {
926 ordinal: tx_header.ordinal,
927 protocol_name:
928 <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
929 }),
930 }
931 }
932}
933
934pub struct FuchsiaNetworksRequestStream {
936 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
937 is_terminated: bool,
938}
939
940impl std::marker::Unpin for FuchsiaNetworksRequestStream {}
941
942impl futures::stream::FusedStream for FuchsiaNetworksRequestStream {
943 fn is_terminated(&self) -> bool {
944 self.is_terminated
945 }
946}
947
948impl fidl::endpoints::RequestStream for FuchsiaNetworksRequestStream {
949 type Protocol = FuchsiaNetworksMarker;
950 type ControlHandle = FuchsiaNetworksControlHandle;
951
952 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
953 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
954 }
955
956 fn control_handle(&self) -> Self::ControlHandle {
957 FuchsiaNetworksControlHandle { inner: self.inner.clone() }
958 }
959
960 fn into_inner(
961 self,
962 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
963 {
964 (self.inner, self.is_terminated)
965 }
966
967 fn from_inner(
968 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
969 is_terminated: bool,
970 ) -> Self {
971 Self { inner, is_terminated }
972 }
973}
974
975impl futures::Stream for FuchsiaNetworksRequestStream {
976 type Item = Result<FuchsiaNetworksRequest, fidl::Error>;
977
978 fn poll_next(
979 mut self: std::pin::Pin<&mut Self>,
980 cx: &mut std::task::Context<'_>,
981 ) -> std::task::Poll<Option<Self::Item>> {
982 let this = &mut *self;
983 if this.inner.check_shutdown(cx) {
984 this.is_terminated = true;
985 return std::task::Poll::Ready(None);
986 }
987 if this.is_terminated {
988 panic!("polled FuchsiaNetworksRequestStream after completion");
989 }
990 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
991 |bytes, handles| {
992 match this.inner.channel().read_etc(cx, bytes, handles) {
993 std::task::Poll::Ready(Ok(())) => {}
994 std::task::Poll::Pending => return std::task::Poll::Pending,
995 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
996 this.is_terminated = true;
997 return std::task::Poll::Ready(None);
998 }
999 std::task::Poll::Ready(Err(e)) => {
1000 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1001 e.into(),
1002 ))));
1003 }
1004 }
1005
1006 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1008
1009 std::task::Poll::Ready(Some(match header.ordinal {
1010 0x787930c67b8cf82c => {
1011 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1012 let mut req = fidl::new_empty!(
1013 NetworkRegistrySetDefaultRequest,
1014 fidl::encoding::DefaultFuchsiaResourceDialect
1015 );
1016 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
1017 let control_handle =
1018 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1019 Ok(FuchsiaNetworksRequest::SetDefault {
1020 network_id: req.network_id,
1021
1022 responder: FuchsiaNetworksSetDefaultResponder {
1023 control_handle: std::mem::ManuallyDrop::new(control_handle),
1024 tx_id: header.tx_id,
1025 },
1026 })
1027 }
1028 0x197e70a1cbeab3ad => {
1029 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1030 let mut req = fidl::new_empty!(
1031 NetworkRegistryAddRequest,
1032 fidl::encoding::DefaultFuchsiaResourceDialect
1033 );
1034 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
1035 let control_handle =
1036 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1037 Ok(FuchsiaNetworksRequest::Add {
1038 network: req.network,
1039
1040 responder: FuchsiaNetworksAddResponder {
1041 control_handle: std::mem::ManuallyDrop::new(control_handle),
1042 tx_id: header.tx_id,
1043 },
1044 })
1045 }
1046 0x3bc790ae5418ff0e => {
1047 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1048 let mut req = fidl::new_empty!(
1049 NetworkRegistryUpdateRequest,
1050 fidl::encoding::DefaultFuchsiaResourceDialect
1051 );
1052 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
1053 let control_handle =
1054 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1055 Ok(FuchsiaNetworksRequest::Update {
1056 network: req.network,
1057
1058 responder: FuchsiaNetworksUpdateResponder {
1059 control_handle: std::mem::ManuallyDrop::new(control_handle),
1060 tx_id: header.tx_id,
1061 },
1062 })
1063 }
1064 0x1302df41dca6379e => {
1065 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1066 let mut req = fidl::new_empty!(
1067 NetworkRegistryRemoveRequest,
1068 fidl::encoding::DefaultFuchsiaResourceDialect
1069 );
1070 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
1071 let control_handle =
1072 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1073 Ok(FuchsiaNetworksRequest::Remove {
1074 network_id: req.network_id,
1075
1076 responder: FuchsiaNetworksRemoveResponder {
1077 control_handle: std::mem::ManuallyDrop::new(control_handle),
1078 tx_id: header.tx_id,
1079 },
1080 })
1081 }
1082 _ => Err(fidl::Error::UnknownOrdinal {
1083 ordinal: header.ordinal,
1084 protocol_name:
1085 <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1086 }),
1087 }))
1088 },
1089 )
1090 }
1091}
1092
1093#[derive(Debug)]
1098pub enum FuchsiaNetworksRequest {
1099 SetDefault {
1103 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
1104 responder: FuchsiaNetworksSetDefaultResponder,
1105 },
1106 Add { network: Network, responder: FuchsiaNetworksAddResponder },
1111 Update { network: Network, responder: FuchsiaNetworksUpdateResponder },
1116 Remove { network_id: u32, responder: FuchsiaNetworksRemoveResponder },
1121}
1122
1123impl FuchsiaNetworksRequest {
1124 #[allow(irrefutable_let_patterns)]
1125 pub fn into_set_default(
1126 self,
1127 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, FuchsiaNetworksSetDefaultResponder)>
1128 {
1129 if let FuchsiaNetworksRequest::SetDefault { network_id, responder } = self {
1130 Some((network_id, responder))
1131 } else {
1132 None
1133 }
1134 }
1135
1136 #[allow(irrefutable_let_patterns)]
1137 pub fn into_add(self) -> Option<(Network, FuchsiaNetworksAddResponder)> {
1138 if let FuchsiaNetworksRequest::Add { network, responder } = self {
1139 Some((network, responder))
1140 } else {
1141 None
1142 }
1143 }
1144
1145 #[allow(irrefutable_let_patterns)]
1146 pub fn into_update(self) -> Option<(Network, FuchsiaNetworksUpdateResponder)> {
1147 if let FuchsiaNetworksRequest::Update { network, responder } = self {
1148 Some((network, responder))
1149 } else {
1150 None
1151 }
1152 }
1153
1154 #[allow(irrefutable_let_patterns)]
1155 pub fn into_remove(self) -> Option<(u32, FuchsiaNetworksRemoveResponder)> {
1156 if let FuchsiaNetworksRequest::Remove { network_id, responder } = self {
1157 Some((network_id, responder))
1158 } else {
1159 None
1160 }
1161 }
1162
1163 pub fn method_name(&self) -> &'static str {
1165 match *self {
1166 FuchsiaNetworksRequest::SetDefault { .. } => "set_default",
1167 FuchsiaNetworksRequest::Add { .. } => "add",
1168 FuchsiaNetworksRequest::Update { .. } => "update",
1169 FuchsiaNetworksRequest::Remove { .. } => "remove",
1170 }
1171 }
1172}
1173
1174#[derive(Debug, Clone)]
1175pub struct FuchsiaNetworksControlHandle {
1176 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1177}
1178
1179impl fidl::endpoints::ControlHandle for FuchsiaNetworksControlHandle {
1180 fn shutdown(&self) {
1181 self.inner.shutdown()
1182 }
1183
1184 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1185 self.inner.shutdown_with_epitaph(status)
1186 }
1187
1188 fn is_closed(&self) -> bool {
1189 self.inner.channel().is_closed()
1190 }
1191 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1192 self.inner.channel().on_closed()
1193 }
1194
1195 #[cfg(target_os = "fuchsia")]
1196 fn signal_peer(
1197 &self,
1198 clear_mask: zx::Signals,
1199 set_mask: zx::Signals,
1200 ) -> Result<(), zx_status::Status> {
1201 use fidl::Peered;
1202 self.inner.channel().signal_peer(clear_mask, set_mask)
1203 }
1204}
1205
1206impl FuchsiaNetworksControlHandle {}
1207
1208#[must_use = "FIDL methods require a response to be sent"]
1209#[derive(Debug)]
1210pub struct FuchsiaNetworksSetDefaultResponder {
1211 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1212 tx_id: u32,
1213}
1214
1215impl std::ops::Drop for FuchsiaNetworksSetDefaultResponder {
1219 fn drop(&mut self) {
1220 self.control_handle.shutdown();
1221 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1223 }
1224}
1225
1226impl fidl::endpoints::Responder for FuchsiaNetworksSetDefaultResponder {
1227 type ControlHandle = FuchsiaNetworksControlHandle;
1228
1229 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1230 &self.control_handle
1231 }
1232
1233 fn drop_without_shutdown(mut self) {
1234 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1236 std::mem::forget(self);
1238 }
1239}
1240
1241impl FuchsiaNetworksSetDefaultResponder {
1242 pub fn send(
1246 self,
1247 mut result: Result<(), NetworkRegistrySetDefaultError>,
1248 ) -> Result<(), fidl::Error> {
1249 let _result = self.send_raw(result);
1250 if _result.is_err() {
1251 self.control_handle.shutdown();
1252 }
1253 self.drop_without_shutdown();
1254 _result
1255 }
1256
1257 pub fn send_no_shutdown_on_err(
1259 self,
1260 mut result: Result<(), NetworkRegistrySetDefaultError>,
1261 ) -> Result<(), fidl::Error> {
1262 let _result = self.send_raw(result);
1263 self.drop_without_shutdown();
1264 _result
1265 }
1266
1267 fn send_raw(
1268 &self,
1269 mut result: Result<(), NetworkRegistrySetDefaultError>,
1270 ) -> Result<(), fidl::Error> {
1271 self.control_handle.inner.send::<fidl::encoding::ResultType<
1272 fidl::encoding::EmptyStruct,
1273 NetworkRegistrySetDefaultError,
1274 >>(
1275 result,
1276 self.tx_id,
1277 0x787930c67b8cf82c,
1278 fidl::encoding::DynamicFlags::empty(),
1279 )
1280 }
1281}
1282
1283#[must_use = "FIDL methods require a response to be sent"]
1284#[derive(Debug)]
1285pub struct FuchsiaNetworksAddResponder {
1286 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1287 tx_id: u32,
1288}
1289
1290impl std::ops::Drop for FuchsiaNetworksAddResponder {
1294 fn drop(&mut self) {
1295 self.control_handle.shutdown();
1296 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1298 }
1299}
1300
1301impl fidl::endpoints::Responder for FuchsiaNetworksAddResponder {
1302 type ControlHandle = FuchsiaNetworksControlHandle;
1303
1304 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1305 &self.control_handle
1306 }
1307
1308 fn drop_without_shutdown(mut self) {
1309 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1311 std::mem::forget(self);
1313 }
1314}
1315
1316impl FuchsiaNetworksAddResponder {
1317 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1321 let _result = self.send_raw(result);
1322 if _result.is_err() {
1323 self.control_handle.shutdown();
1324 }
1325 self.drop_without_shutdown();
1326 _result
1327 }
1328
1329 pub fn send_no_shutdown_on_err(
1331 self,
1332 mut result: Result<(), NetworkRegistryAddError>,
1333 ) -> Result<(), fidl::Error> {
1334 let _result = self.send_raw(result);
1335 self.drop_without_shutdown();
1336 _result
1337 }
1338
1339 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1340 self.control_handle.inner.send::<fidl::encoding::ResultType<
1341 fidl::encoding::EmptyStruct,
1342 NetworkRegistryAddError,
1343 >>(
1344 result,
1345 self.tx_id,
1346 0x197e70a1cbeab3ad,
1347 fidl::encoding::DynamicFlags::empty(),
1348 )
1349 }
1350}
1351
1352#[must_use = "FIDL methods require a response to be sent"]
1353#[derive(Debug)]
1354pub struct FuchsiaNetworksUpdateResponder {
1355 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1356 tx_id: u32,
1357}
1358
1359impl std::ops::Drop for FuchsiaNetworksUpdateResponder {
1363 fn drop(&mut self) {
1364 self.control_handle.shutdown();
1365 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1367 }
1368}
1369
1370impl fidl::endpoints::Responder for FuchsiaNetworksUpdateResponder {
1371 type ControlHandle = FuchsiaNetworksControlHandle;
1372
1373 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1374 &self.control_handle
1375 }
1376
1377 fn drop_without_shutdown(mut self) {
1378 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1380 std::mem::forget(self);
1382 }
1383}
1384
1385impl FuchsiaNetworksUpdateResponder {
1386 pub fn send(
1390 self,
1391 mut result: Result<(), NetworkRegistryUpdateError>,
1392 ) -> Result<(), fidl::Error> {
1393 let _result = self.send_raw(result);
1394 if _result.is_err() {
1395 self.control_handle.shutdown();
1396 }
1397 self.drop_without_shutdown();
1398 _result
1399 }
1400
1401 pub fn send_no_shutdown_on_err(
1403 self,
1404 mut result: Result<(), NetworkRegistryUpdateError>,
1405 ) -> Result<(), fidl::Error> {
1406 let _result = self.send_raw(result);
1407 self.drop_without_shutdown();
1408 _result
1409 }
1410
1411 fn send_raw(
1412 &self,
1413 mut result: Result<(), NetworkRegistryUpdateError>,
1414 ) -> Result<(), fidl::Error> {
1415 self.control_handle.inner.send::<fidl::encoding::ResultType<
1416 fidl::encoding::EmptyStruct,
1417 NetworkRegistryUpdateError,
1418 >>(
1419 result,
1420 self.tx_id,
1421 0x3bc790ae5418ff0e,
1422 fidl::encoding::DynamicFlags::empty(),
1423 )
1424 }
1425}
1426
1427#[must_use = "FIDL methods require a response to be sent"]
1428#[derive(Debug)]
1429pub struct FuchsiaNetworksRemoveResponder {
1430 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1431 tx_id: u32,
1432}
1433
1434impl std::ops::Drop for FuchsiaNetworksRemoveResponder {
1438 fn drop(&mut self) {
1439 self.control_handle.shutdown();
1440 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1442 }
1443}
1444
1445impl fidl::endpoints::Responder for FuchsiaNetworksRemoveResponder {
1446 type ControlHandle = FuchsiaNetworksControlHandle;
1447
1448 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1449 &self.control_handle
1450 }
1451
1452 fn drop_without_shutdown(mut self) {
1453 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1455 std::mem::forget(self);
1457 }
1458}
1459
1460impl FuchsiaNetworksRemoveResponder {
1461 pub fn send(
1465 self,
1466 mut result: Result<(), NetworkRegistryRemoveError>,
1467 ) -> Result<(), fidl::Error> {
1468 let _result = self.send_raw(result);
1469 if _result.is_err() {
1470 self.control_handle.shutdown();
1471 }
1472 self.drop_without_shutdown();
1473 _result
1474 }
1475
1476 pub fn send_no_shutdown_on_err(
1478 self,
1479 mut result: Result<(), NetworkRegistryRemoveError>,
1480 ) -> Result<(), fidl::Error> {
1481 let _result = self.send_raw(result);
1482 self.drop_without_shutdown();
1483 _result
1484 }
1485
1486 fn send_raw(
1487 &self,
1488 mut result: Result<(), NetworkRegistryRemoveError>,
1489 ) -> Result<(), fidl::Error> {
1490 self.control_handle.inner.send::<fidl::encoding::ResultType<
1491 fidl::encoding::EmptyStruct,
1492 NetworkRegistryRemoveError,
1493 >>(
1494 result,
1495 self.tx_id,
1496 0x1302df41dca6379e,
1497 fidl::encoding::DynamicFlags::empty(),
1498 )
1499 }
1500}
1501
1502#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1503pub struct NetworkRegistryMarker;
1504
1505impl fidl::endpoints::ProtocolMarker for NetworkRegistryMarker {
1506 type Proxy = NetworkRegistryProxy;
1507 type RequestStream = NetworkRegistryRequestStream;
1508 #[cfg(target_os = "fuchsia")]
1509 type SynchronousProxy = NetworkRegistrySynchronousProxy;
1510
1511 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.NetworkRegistry";
1512}
1513impl fidl::endpoints::DiscoverableProtocolMarker for NetworkRegistryMarker {}
1514pub type NetworkRegistrySetDefaultResult = Result<(), NetworkRegistrySetDefaultError>;
1515pub type NetworkRegistryAddResult = Result<(), NetworkRegistryAddError>;
1516pub type NetworkRegistryUpdateResult = Result<(), NetworkRegistryUpdateError>;
1517pub type NetworkRegistryRemoveResult = Result<(), NetworkRegistryRemoveError>;
1518
1519pub trait NetworkRegistryProxyInterface: Send + Sync {
1520 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
1521 + Send;
1522 fn r#set_default(
1523 &self,
1524 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1525 ) -> Self::SetDefaultResponseFut;
1526 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
1527 + Send;
1528 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
1529 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
1530 + Send;
1531 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
1532 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
1533 + Send;
1534 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
1535}
1536#[derive(Debug)]
1537#[cfg(target_os = "fuchsia")]
1538pub struct NetworkRegistrySynchronousProxy {
1539 client: fidl::client::sync::Client,
1540}
1541
1542#[cfg(target_os = "fuchsia")]
1543impl fidl::endpoints::SynchronousProxy for NetworkRegistrySynchronousProxy {
1544 type Proxy = NetworkRegistryProxy;
1545 type Protocol = NetworkRegistryMarker;
1546
1547 fn from_channel(inner: fidl::Channel) -> Self {
1548 Self::new(inner)
1549 }
1550
1551 fn into_channel(self) -> fidl::Channel {
1552 self.client.into_channel()
1553 }
1554
1555 fn as_channel(&self) -> &fidl::Channel {
1556 self.client.as_channel()
1557 }
1558}
1559
1560#[cfg(target_os = "fuchsia")]
1561impl NetworkRegistrySynchronousProxy {
1562 pub fn new(channel: fidl::Channel) -> Self {
1563 let protocol_name = <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1564 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1565 }
1566
1567 pub fn into_channel(self) -> fidl::Channel {
1568 self.client.into_channel()
1569 }
1570
1571 pub fn wait_for_event(
1574 &self,
1575 deadline: zx::MonotonicInstant,
1576 ) -> Result<NetworkRegistryEvent, fidl::Error> {
1577 NetworkRegistryEvent::decode(self.client.wait_for_event(deadline)?)
1578 }
1579
1580 pub fn r#set_default(
1584 &self,
1585 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1586 ___deadline: zx::MonotonicInstant,
1587 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1588 let _response =
1589 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
1590 fidl::encoding::EmptyStruct,
1591 NetworkRegistrySetDefaultError,
1592 >>(
1593 (network_id,),
1594 0x787930c67b8cf82c,
1595 fidl::encoding::DynamicFlags::empty(),
1596 ___deadline,
1597 )?;
1598 Ok(_response.map(|x| x))
1599 }
1600
1601 pub fn r#add(
1606 &self,
1607 mut network: &Network,
1608 ___deadline: zx::MonotonicInstant,
1609 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1610 let _response =
1611 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
1612 fidl::encoding::EmptyStruct,
1613 NetworkRegistryAddError,
1614 >>(
1615 (network,),
1616 0x197e70a1cbeab3ad,
1617 fidl::encoding::DynamicFlags::empty(),
1618 ___deadline,
1619 )?;
1620 Ok(_response.map(|x| x))
1621 }
1622
1623 pub fn r#update(
1628 &self,
1629 mut network: &Network,
1630 ___deadline: zx::MonotonicInstant,
1631 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1632 let _response =
1633 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
1634 fidl::encoding::EmptyStruct,
1635 NetworkRegistryUpdateError,
1636 >>(
1637 (network,),
1638 0x3bc790ae5418ff0e,
1639 fidl::encoding::DynamicFlags::empty(),
1640 ___deadline,
1641 )?;
1642 Ok(_response.map(|x| x))
1643 }
1644
1645 pub fn r#remove(
1650 &self,
1651 mut network_id: u32,
1652 ___deadline: zx::MonotonicInstant,
1653 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1654 let _response =
1655 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
1656 fidl::encoding::EmptyStruct,
1657 NetworkRegistryRemoveError,
1658 >>(
1659 (network_id,),
1660 0x1302df41dca6379e,
1661 fidl::encoding::DynamicFlags::empty(),
1662 ___deadline,
1663 )?;
1664 Ok(_response.map(|x| x))
1665 }
1666}
1667
1668#[cfg(target_os = "fuchsia")]
1669impl From<NetworkRegistrySynchronousProxy> for zx::NullableHandle {
1670 fn from(value: NetworkRegistrySynchronousProxy) -> Self {
1671 value.into_channel().into()
1672 }
1673}
1674
1675#[cfg(target_os = "fuchsia")]
1676impl From<fidl::Channel> for NetworkRegistrySynchronousProxy {
1677 fn from(value: fidl::Channel) -> Self {
1678 Self::new(value)
1679 }
1680}
1681
1682#[cfg(target_os = "fuchsia")]
1683impl fidl::endpoints::FromClient for NetworkRegistrySynchronousProxy {
1684 type Protocol = NetworkRegistryMarker;
1685
1686 fn from_client(value: fidl::endpoints::ClientEnd<NetworkRegistryMarker>) -> Self {
1687 Self::new(value.into_channel())
1688 }
1689}
1690
1691#[derive(Debug, Clone)]
1692pub struct NetworkRegistryProxy {
1693 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1694}
1695
1696impl fidl::endpoints::Proxy for NetworkRegistryProxy {
1697 type Protocol = NetworkRegistryMarker;
1698
1699 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1700 Self::new(inner)
1701 }
1702
1703 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1704 self.client.into_channel().map_err(|client| Self { client })
1705 }
1706
1707 fn as_channel(&self) -> &::fidl::AsyncChannel {
1708 self.client.as_channel()
1709 }
1710}
1711
1712impl NetworkRegistryProxy {
1713 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1715 let protocol_name = <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1716 Self { client: fidl::client::Client::new(channel, protocol_name) }
1717 }
1718
1719 pub fn take_event_stream(&self) -> NetworkRegistryEventStream {
1725 NetworkRegistryEventStream { event_receiver: self.client.take_event_receiver() }
1726 }
1727
1728 pub fn r#set_default(
1732 &self,
1733 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1734 ) -> fidl::client::QueryResponseFut<
1735 NetworkRegistrySetDefaultResult,
1736 fidl::encoding::DefaultFuchsiaResourceDialect,
1737 > {
1738 NetworkRegistryProxyInterface::r#set_default(self, network_id)
1739 }
1740
1741 pub fn r#add(
1746 &self,
1747 mut network: &Network,
1748 ) -> fidl::client::QueryResponseFut<
1749 NetworkRegistryAddResult,
1750 fidl::encoding::DefaultFuchsiaResourceDialect,
1751 > {
1752 NetworkRegistryProxyInterface::r#add(self, network)
1753 }
1754
1755 pub fn r#update(
1760 &self,
1761 mut network: &Network,
1762 ) -> fidl::client::QueryResponseFut<
1763 NetworkRegistryUpdateResult,
1764 fidl::encoding::DefaultFuchsiaResourceDialect,
1765 > {
1766 NetworkRegistryProxyInterface::r#update(self, network)
1767 }
1768
1769 pub fn r#remove(
1774 &self,
1775 mut network_id: u32,
1776 ) -> fidl::client::QueryResponseFut<
1777 NetworkRegistryRemoveResult,
1778 fidl::encoding::DefaultFuchsiaResourceDialect,
1779 > {
1780 NetworkRegistryProxyInterface::r#remove(self, network_id)
1781 }
1782}
1783
1784impl NetworkRegistryProxyInterface for NetworkRegistryProxy {
1785 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
1786 NetworkRegistrySetDefaultResult,
1787 fidl::encoding::DefaultFuchsiaResourceDialect,
1788 >;
1789 fn r#set_default(
1790 &self,
1791 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1792 ) -> Self::SetDefaultResponseFut {
1793 fn _decode(
1794 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1795 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1796 let _response = fidl::client::decode_transaction_body::<
1797 fidl::encoding::ResultType<
1798 fidl::encoding::EmptyStruct,
1799 NetworkRegistrySetDefaultError,
1800 >,
1801 fidl::encoding::DefaultFuchsiaResourceDialect,
1802 0x787930c67b8cf82c,
1803 >(_buf?)?;
1804 Ok(_response.map(|x| x))
1805 }
1806 self.client.send_query_and_decode::<
1807 NetworkRegistrySetDefaultRequest,
1808 NetworkRegistrySetDefaultResult,
1809 >(
1810 (network_id,),
1811 0x787930c67b8cf82c,
1812 fidl::encoding::DynamicFlags::empty(),
1813 _decode,
1814 )
1815 }
1816
1817 type AddResponseFut = fidl::client::QueryResponseFut<
1818 NetworkRegistryAddResult,
1819 fidl::encoding::DefaultFuchsiaResourceDialect,
1820 >;
1821 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
1822 fn _decode(
1823 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1824 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1825 let _response = fidl::client::decode_transaction_body::<
1826 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
1827 fidl::encoding::DefaultFuchsiaResourceDialect,
1828 0x197e70a1cbeab3ad,
1829 >(_buf?)?;
1830 Ok(_response.map(|x| x))
1831 }
1832 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
1833 (network,),
1834 0x197e70a1cbeab3ad,
1835 fidl::encoding::DynamicFlags::empty(),
1836 _decode,
1837 )
1838 }
1839
1840 type UpdateResponseFut = fidl::client::QueryResponseFut<
1841 NetworkRegistryUpdateResult,
1842 fidl::encoding::DefaultFuchsiaResourceDialect,
1843 >;
1844 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
1845 fn _decode(
1846 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1847 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1848 let _response = fidl::client::decode_transaction_body::<
1849 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
1850 fidl::encoding::DefaultFuchsiaResourceDialect,
1851 0x3bc790ae5418ff0e,
1852 >(_buf?)?;
1853 Ok(_response.map(|x| x))
1854 }
1855 self.client
1856 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
1857 (network,),
1858 0x3bc790ae5418ff0e,
1859 fidl::encoding::DynamicFlags::empty(),
1860 _decode,
1861 )
1862 }
1863
1864 type RemoveResponseFut = fidl::client::QueryResponseFut<
1865 NetworkRegistryRemoveResult,
1866 fidl::encoding::DefaultFuchsiaResourceDialect,
1867 >;
1868 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
1869 fn _decode(
1870 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1871 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1872 let _response = fidl::client::decode_transaction_body::<
1873 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
1874 fidl::encoding::DefaultFuchsiaResourceDialect,
1875 0x1302df41dca6379e,
1876 >(_buf?)?;
1877 Ok(_response.map(|x| x))
1878 }
1879 self.client
1880 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
1881 (network_id,),
1882 0x1302df41dca6379e,
1883 fidl::encoding::DynamicFlags::empty(),
1884 _decode,
1885 )
1886 }
1887}
1888
1889pub struct NetworkRegistryEventStream {
1890 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1891}
1892
1893impl std::marker::Unpin for NetworkRegistryEventStream {}
1894
1895impl futures::stream::FusedStream for NetworkRegistryEventStream {
1896 fn is_terminated(&self) -> bool {
1897 self.event_receiver.is_terminated()
1898 }
1899}
1900
1901impl futures::Stream for NetworkRegistryEventStream {
1902 type Item = Result<NetworkRegistryEvent, fidl::Error>;
1903
1904 fn poll_next(
1905 mut self: std::pin::Pin<&mut Self>,
1906 cx: &mut std::task::Context<'_>,
1907 ) -> std::task::Poll<Option<Self::Item>> {
1908 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1909 &mut self.event_receiver,
1910 cx
1911 )?) {
1912 Some(buf) => std::task::Poll::Ready(Some(NetworkRegistryEvent::decode(buf))),
1913 None => std::task::Poll::Ready(None),
1914 }
1915 }
1916}
1917
1918#[derive(Debug)]
1919pub enum NetworkRegistryEvent {}
1920
1921impl NetworkRegistryEvent {
1922 fn decode(
1924 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1925 ) -> Result<NetworkRegistryEvent, fidl::Error> {
1926 let (bytes, _handles) = buf.split_mut();
1927 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1928 debug_assert_eq!(tx_header.tx_id, 0);
1929 match tx_header.ordinal {
1930 _ => Err(fidl::Error::UnknownOrdinal {
1931 ordinal: tx_header.ordinal,
1932 protocol_name:
1933 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1934 }),
1935 }
1936 }
1937}
1938
1939pub struct NetworkRegistryRequestStream {
1941 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1942 is_terminated: bool,
1943}
1944
1945impl std::marker::Unpin for NetworkRegistryRequestStream {}
1946
1947impl futures::stream::FusedStream for NetworkRegistryRequestStream {
1948 fn is_terminated(&self) -> bool {
1949 self.is_terminated
1950 }
1951}
1952
1953impl fidl::endpoints::RequestStream for NetworkRegistryRequestStream {
1954 type Protocol = NetworkRegistryMarker;
1955 type ControlHandle = NetworkRegistryControlHandle;
1956
1957 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1958 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1959 }
1960
1961 fn control_handle(&self) -> Self::ControlHandle {
1962 NetworkRegistryControlHandle { inner: self.inner.clone() }
1963 }
1964
1965 fn into_inner(
1966 self,
1967 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1968 {
1969 (self.inner, self.is_terminated)
1970 }
1971
1972 fn from_inner(
1973 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1974 is_terminated: bool,
1975 ) -> Self {
1976 Self { inner, is_terminated }
1977 }
1978}
1979
1980impl futures::Stream for NetworkRegistryRequestStream {
1981 type Item = Result<NetworkRegistryRequest, fidl::Error>;
1982
1983 fn poll_next(
1984 mut self: std::pin::Pin<&mut Self>,
1985 cx: &mut std::task::Context<'_>,
1986 ) -> std::task::Poll<Option<Self::Item>> {
1987 let this = &mut *self;
1988 if this.inner.check_shutdown(cx) {
1989 this.is_terminated = true;
1990 return std::task::Poll::Ready(None);
1991 }
1992 if this.is_terminated {
1993 panic!("polled NetworkRegistryRequestStream after completion");
1994 }
1995 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1996 |bytes, handles| {
1997 match this.inner.channel().read_etc(cx, bytes, handles) {
1998 std::task::Poll::Ready(Ok(())) => {}
1999 std::task::Poll::Pending => return std::task::Poll::Pending,
2000 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2001 this.is_terminated = true;
2002 return std::task::Poll::Ready(None);
2003 }
2004 std::task::Poll::Ready(Err(e)) => {
2005 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2006 e.into(),
2007 ))));
2008 }
2009 }
2010
2011 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2013
2014 std::task::Poll::Ready(Some(match header.ordinal {
2015 0x787930c67b8cf82c => {
2016 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2017 let mut req = fidl::new_empty!(
2018 NetworkRegistrySetDefaultRequest,
2019 fidl::encoding::DefaultFuchsiaResourceDialect
2020 );
2021 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
2022 let control_handle =
2023 NetworkRegistryControlHandle { inner: this.inner.clone() };
2024 Ok(NetworkRegistryRequest::SetDefault {
2025 network_id: req.network_id,
2026
2027 responder: NetworkRegistrySetDefaultResponder {
2028 control_handle: std::mem::ManuallyDrop::new(control_handle),
2029 tx_id: header.tx_id,
2030 },
2031 })
2032 }
2033 0x197e70a1cbeab3ad => {
2034 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2035 let mut req = fidl::new_empty!(
2036 NetworkRegistryAddRequest,
2037 fidl::encoding::DefaultFuchsiaResourceDialect
2038 );
2039 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
2040 let control_handle =
2041 NetworkRegistryControlHandle { inner: this.inner.clone() };
2042 Ok(NetworkRegistryRequest::Add {
2043 network: req.network,
2044
2045 responder: NetworkRegistryAddResponder {
2046 control_handle: std::mem::ManuallyDrop::new(control_handle),
2047 tx_id: header.tx_id,
2048 },
2049 })
2050 }
2051 0x3bc790ae5418ff0e => {
2052 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2053 let mut req = fidl::new_empty!(
2054 NetworkRegistryUpdateRequest,
2055 fidl::encoding::DefaultFuchsiaResourceDialect
2056 );
2057 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
2058 let control_handle =
2059 NetworkRegistryControlHandle { inner: this.inner.clone() };
2060 Ok(NetworkRegistryRequest::Update {
2061 network: req.network,
2062
2063 responder: NetworkRegistryUpdateResponder {
2064 control_handle: std::mem::ManuallyDrop::new(control_handle),
2065 tx_id: header.tx_id,
2066 },
2067 })
2068 }
2069 0x1302df41dca6379e => {
2070 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2071 let mut req = fidl::new_empty!(
2072 NetworkRegistryRemoveRequest,
2073 fidl::encoding::DefaultFuchsiaResourceDialect
2074 );
2075 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
2076 let control_handle =
2077 NetworkRegistryControlHandle { inner: this.inner.clone() };
2078 Ok(NetworkRegistryRequest::Remove {
2079 network_id: req.network_id,
2080
2081 responder: NetworkRegistryRemoveResponder {
2082 control_handle: std::mem::ManuallyDrop::new(control_handle),
2083 tx_id: header.tx_id,
2084 },
2085 })
2086 }
2087 _ => Err(fidl::Error::UnknownOrdinal {
2088 ordinal: header.ordinal,
2089 protocol_name:
2090 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2091 }),
2092 }))
2093 },
2094 )
2095 }
2096}
2097
2098#[derive(Debug)]
2099pub enum NetworkRegistryRequest {
2100 SetDefault {
2104 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
2105 responder: NetworkRegistrySetDefaultResponder,
2106 },
2107 Add { network: Network, responder: NetworkRegistryAddResponder },
2112 Update { network: Network, responder: NetworkRegistryUpdateResponder },
2117 Remove { network_id: u32, responder: NetworkRegistryRemoveResponder },
2122}
2123
2124impl NetworkRegistryRequest {
2125 #[allow(irrefutable_let_patterns)]
2126 pub fn into_set_default(
2127 self,
2128 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, NetworkRegistrySetDefaultResponder)>
2129 {
2130 if let NetworkRegistryRequest::SetDefault { network_id, responder } = self {
2131 Some((network_id, responder))
2132 } else {
2133 None
2134 }
2135 }
2136
2137 #[allow(irrefutable_let_patterns)]
2138 pub fn into_add(self) -> Option<(Network, NetworkRegistryAddResponder)> {
2139 if let NetworkRegistryRequest::Add { network, responder } = self {
2140 Some((network, responder))
2141 } else {
2142 None
2143 }
2144 }
2145
2146 #[allow(irrefutable_let_patterns)]
2147 pub fn into_update(self) -> Option<(Network, NetworkRegistryUpdateResponder)> {
2148 if let NetworkRegistryRequest::Update { network, responder } = self {
2149 Some((network, responder))
2150 } else {
2151 None
2152 }
2153 }
2154
2155 #[allow(irrefutable_let_patterns)]
2156 pub fn into_remove(self) -> Option<(u32, NetworkRegistryRemoveResponder)> {
2157 if let NetworkRegistryRequest::Remove { network_id, responder } = self {
2158 Some((network_id, responder))
2159 } else {
2160 None
2161 }
2162 }
2163
2164 pub fn method_name(&self) -> &'static str {
2166 match *self {
2167 NetworkRegistryRequest::SetDefault { .. } => "set_default",
2168 NetworkRegistryRequest::Add { .. } => "add",
2169 NetworkRegistryRequest::Update { .. } => "update",
2170 NetworkRegistryRequest::Remove { .. } => "remove",
2171 }
2172 }
2173}
2174
2175#[derive(Debug, Clone)]
2176pub struct NetworkRegistryControlHandle {
2177 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2178}
2179
2180impl fidl::endpoints::ControlHandle for NetworkRegistryControlHandle {
2181 fn shutdown(&self) {
2182 self.inner.shutdown()
2183 }
2184
2185 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2186 self.inner.shutdown_with_epitaph(status)
2187 }
2188
2189 fn is_closed(&self) -> bool {
2190 self.inner.channel().is_closed()
2191 }
2192 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2193 self.inner.channel().on_closed()
2194 }
2195
2196 #[cfg(target_os = "fuchsia")]
2197 fn signal_peer(
2198 &self,
2199 clear_mask: zx::Signals,
2200 set_mask: zx::Signals,
2201 ) -> Result<(), zx_status::Status> {
2202 use fidl::Peered;
2203 self.inner.channel().signal_peer(clear_mask, set_mask)
2204 }
2205}
2206
2207impl NetworkRegistryControlHandle {}
2208
2209#[must_use = "FIDL methods require a response to be sent"]
2210#[derive(Debug)]
2211pub struct NetworkRegistrySetDefaultResponder {
2212 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2213 tx_id: u32,
2214}
2215
2216impl std::ops::Drop for NetworkRegistrySetDefaultResponder {
2220 fn drop(&mut self) {
2221 self.control_handle.shutdown();
2222 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2224 }
2225}
2226
2227impl fidl::endpoints::Responder for NetworkRegistrySetDefaultResponder {
2228 type ControlHandle = NetworkRegistryControlHandle;
2229
2230 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2231 &self.control_handle
2232 }
2233
2234 fn drop_without_shutdown(mut self) {
2235 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2237 std::mem::forget(self);
2239 }
2240}
2241
2242impl NetworkRegistrySetDefaultResponder {
2243 pub fn send(
2247 self,
2248 mut result: Result<(), NetworkRegistrySetDefaultError>,
2249 ) -> Result<(), fidl::Error> {
2250 let _result = self.send_raw(result);
2251 if _result.is_err() {
2252 self.control_handle.shutdown();
2253 }
2254 self.drop_without_shutdown();
2255 _result
2256 }
2257
2258 pub fn send_no_shutdown_on_err(
2260 self,
2261 mut result: Result<(), NetworkRegistrySetDefaultError>,
2262 ) -> Result<(), fidl::Error> {
2263 let _result = self.send_raw(result);
2264 self.drop_without_shutdown();
2265 _result
2266 }
2267
2268 fn send_raw(
2269 &self,
2270 mut result: Result<(), NetworkRegistrySetDefaultError>,
2271 ) -> Result<(), fidl::Error> {
2272 self.control_handle.inner.send::<fidl::encoding::ResultType<
2273 fidl::encoding::EmptyStruct,
2274 NetworkRegistrySetDefaultError,
2275 >>(
2276 result,
2277 self.tx_id,
2278 0x787930c67b8cf82c,
2279 fidl::encoding::DynamicFlags::empty(),
2280 )
2281 }
2282}
2283
2284#[must_use = "FIDL methods require a response to be sent"]
2285#[derive(Debug)]
2286pub struct NetworkRegistryAddResponder {
2287 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2288 tx_id: u32,
2289}
2290
2291impl std::ops::Drop for NetworkRegistryAddResponder {
2295 fn drop(&mut self) {
2296 self.control_handle.shutdown();
2297 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2299 }
2300}
2301
2302impl fidl::endpoints::Responder for NetworkRegistryAddResponder {
2303 type ControlHandle = NetworkRegistryControlHandle;
2304
2305 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2306 &self.control_handle
2307 }
2308
2309 fn drop_without_shutdown(mut self) {
2310 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2312 std::mem::forget(self);
2314 }
2315}
2316
2317impl NetworkRegistryAddResponder {
2318 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
2322 let _result = self.send_raw(result);
2323 if _result.is_err() {
2324 self.control_handle.shutdown();
2325 }
2326 self.drop_without_shutdown();
2327 _result
2328 }
2329
2330 pub fn send_no_shutdown_on_err(
2332 self,
2333 mut result: Result<(), NetworkRegistryAddError>,
2334 ) -> Result<(), fidl::Error> {
2335 let _result = self.send_raw(result);
2336 self.drop_without_shutdown();
2337 _result
2338 }
2339
2340 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
2341 self.control_handle.inner.send::<fidl::encoding::ResultType<
2342 fidl::encoding::EmptyStruct,
2343 NetworkRegistryAddError,
2344 >>(
2345 result,
2346 self.tx_id,
2347 0x197e70a1cbeab3ad,
2348 fidl::encoding::DynamicFlags::empty(),
2349 )
2350 }
2351}
2352
2353#[must_use = "FIDL methods require a response to be sent"]
2354#[derive(Debug)]
2355pub struct NetworkRegistryUpdateResponder {
2356 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2357 tx_id: u32,
2358}
2359
2360impl std::ops::Drop for NetworkRegistryUpdateResponder {
2364 fn drop(&mut self) {
2365 self.control_handle.shutdown();
2366 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2368 }
2369}
2370
2371impl fidl::endpoints::Responder for NetworkRegistryUpdateResponder {
2372 type ControlHandle = NetworkRegistryControlHandle;
2373
2374 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2375 &self.control_handle
2376 }
2377
2378 fn drop_without_shutdown(mut self) {
2379 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2381 std::mem::forget(self);
2383 }
2384}
2385
2386impl NetworkRegistryUpdateResponder {
2387 pub fn send(
2391 self,
2392 mut result: Result<(), NetworkRegistryUpdateError>,
2393 ) -> Result<(), fidl::Error> {
2394 let _result = self.send_raw(result);
2395 if _result.is_err() {
2396 self.control_handle.shutdown();
2397 }
2398 self.drop_without_shutdown();
2399 _result
2400 }
2401
2402 pub fn send_no_shutdown_on_err(
2404 self,
2405 mut result: Result<(), NetworkRegistryUpdateError>,
2406 ) -> Result<(), fidl::Error> {
2407 let _result = self.send_raw(result);
2408 self.drop_without_shutdown();
2409 _result
2410 }
2411
2412 fn send_raw(
2413 &self,
2414 mut result: Result<(), NetworkRegistryUpdateError>,
2415 ) -> Result<(), fidl::Error> {
2416 self.control_handle.inner.send::<fidl::encoding::ResultType<
2417 fidl::encoding::EmptyStruct,
2418 NetworkRegistryUpdateError,
2419 >>(
2420 result,
2421 self.tx_id,
2422 0x3bc790ae5418ff0e,
2423 fidl::encoding::DynamicFlags::empty(),
2424 )
2425 }
2426}
2427
2428#[must_use = "FIDL methods require a response to be sent"]
2429#[derive(Debug)]
2430pub struct NetworkRegistryRemoveResponder {
2431 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2432 tx_id: u32,
2433}
2434
2435impl std::ops::Drop for NetworkRegistryRemoveResponder {
2439 fn drop(&mut self) {
2440 self.control_handle.shutdown();
2441 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2443 }
2444}
2445
2446impl fidl::endpoints::Responder for NetworkRegistryRemoveResponder {
2447 type ControlHandle = NetworkRegistryControlHandle;
2448
2449 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2450 &self.control_handle
2451 }
2452
2453 fn drop_without_shutdown(mut self) {
2454 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2456 std::mem::forget(self);
2458 }
2459}
2460
2461impl NetworkRegistryRemoveResponder {
2462 pub fn send(
2466 self,
2467 mut result: Result<(), NetworkRegistryRemoveError>,
2468 ) -> Result<(), fidl::Error> {
2469 let _result = self.send_raw(result);
2470 if _result.is_err() {
2471 self.control_handle.shutdown();
2472 }
2473 self.drop_without_shutdown();
2474 _result
2475 }
2476
2477 pub fn send_no_shutdown_on_err(
2479 self,
2480 mut result: Result<(), NetworkRegistryRemoveError>,
2481 ) -> Result<(), fidl::Error> {
2482 let _result = self.send_raw(result);
2483 self.drop_without_shutdown();
2484 _result
2485 }
2486
2487 fn send_raw(
2488 &self,
2489 mut result: Result<(), NetworkRegistryRemoveError>,
2490 ) -> Result<(), fidl::Error> {
2491 self.control_handle.inner.send::<fidl::encoding::ResultType<
2492 fidl::encoding::EmptyStruct,
2493 NetworkRegistryRemoveError,
2494 >>(
2495 result,
2496 self.tx_id,
2497 0x1302df41dca6379e,
2498 fidl::encoding::DynamicFlags::empty(),
2499 )
2500 }
2501}
2502
2503#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2504pub struct StarnixNetworksMarker;
2505
2506impl fidl::endpoints::ProtocolMarker for StarnixNetworksMarker {
2507 type Proxy = StarnixNetworksProxy;
2508 type RequestStream = StarnixNetworksRequestStream;
2509 #[cfg(target_os = "fuchsia")]
2510 type SynchronousProxy = StarnixNetworksSynchronousProxy;
2511
2512 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.StarnixNetworks";
2513}
2514impl fidl::endpoints::DiscoverableProtocolMarker for StarnixNetworksMarker {}
2515
2516pub trait StarnixNetworksProxyInterface: Send + Sync {
2517 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
2518 + Send;
2519 fn r#set_default(
2520 &self,
2521 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2522 ) -> Self::SetDefaultResponseFut;
2523 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
2524 + Send;
2525 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
2526 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
2527 + Send;
2528 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
2529 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
2530 + Send;
2531 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
2532}
2533#[derive(Debug)]
2534#[cfg(target_os = "fuchsia")]
2535pub struct StarnixNetworksSynchronousProxy {
2536 client: fidl::client::sync::Client,
2537}
2538
2539#[cfg(target_os = "fuchsia")]
2540impl fidl::endpoints::SynchronousProxy for StarnixNetworksSynchronousProxy {
2541 type Proxy = StarnixNetworksProxy;
2542 type Protocol = StarnixNetworksMarker;
2543
2544 fn from_channel(inner: fidl::Channel) -> Self {
2545 Self::new(inner)
2546 }
2547
2548 fn into_channel(self) -> fidl::Channel {
2549 self.client.into_channel()
2550 }
2551
2552 fn as_channel(&self) -> &fidl::Channel {
2553 self.client.as_channel()
2554 }
2555}
2556
2557#[cfg(target_os = "fuchsia")]
2558impl StarnixNetworksSynchronousProxy {
2559 pub fn new(channel: fidl::Channel) -> Self {
2560 let protocol_name = <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2561 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
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(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 >>(
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 >>(
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 >>(
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 >>(
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}