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(
622 &self,
623 mut network: &Network,
624 ___deadline: zx::MonotonicInstant,
625 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
626 let _response =
627 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
628 fidl::encoding::EmptyStruct,
629 NetworkRegistryUpdateError,
630 >>(
631 (network,),
632 0x3bc790ae5418ff0e,
633 fidl::encoding::DynamicFlags::empty(),
634 ___deadline,
635 )?;
636 Ok(_response.map(|x| x))
637 }
638
639 pub fn r#remove(
643 &self,
644 mut network_id: u32,
645 ___deadline: zx::MonotonicInstant,
646 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
647 let _response =
648 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
649 fidl::encoding::EmptyStruct,
650 NetworkRegistryRemoveError,
651 >>(
652 (network_id,),
653 0x1302df41dca6379e,
654 fidl::encoding::DynamicFlags::empty(),
655 ___deadline,
656 )?;
657 Ok(_response.map(|x| x))
658 }
659}
660
661#[cfg(target_os = "fuchsia")]
662impl From<FuchsiaNetworksSynchronousProxy> for zx::NullableHandle {
663 fn from(value: FuchsiaNetworksSynchronousProxy) -> Self {
664 value.into_channel().into()
665 }
666}
667
668#[cfg(target_os = "fuchsia")]
669impl From<fidl::Channel> for FuchsiaNetworksSynchronousProxy {
670 fn from(value: fidl::Channel) -> Self {
671 Self::new(value)
672 }
673}
674
675#[cfg(target_os = "fuchsia")]
676impl fidl::endpoints::FromClient for FuchsiaNetworksSynchronousProxy {
677 type Protocol = FuchsiaNetworksMarker;
678
679 fn from_client(value: fidl::endpoints::ClientEnd<FuchsiaNetworksMarker>) -> Self {
680 Self::new(value.into_channel())
681 }
682}
683
684#[derive(Debug, Clone)]
685pub struct FuchsiaNetworksProxy {
686 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
687}
688
689impl fidl::endpoints::Proxy for FuchsiaNetworksProxy {
690 type Protocol = FuchsiaNetworksMarker;
691
692 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
693 Self::new(inner)
694 }
695
696 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
697 self.client.into_channel().map_err(|client| Self { client })
698 }
699
700 fn as_channel(&self) -> &::fidl::AsyncChannel {
701 self.client.as_channel()
702 }
703}
704
705impl FuchsiaNetworksProxy {
706 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
708 let protocol_name = <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
709 Self { client: fidl::client::Client::new(channel, protocol_name) }
710 }
711
712 pub fn take_event_stream(&self) -> FuchsiaNetworksEventStream {
718 FuchsiaNetworksEventStream { event_receiver: self.client.take_event_receiver() }
719 }
720
721 pub fn r#set_default(
725 &self,
726 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
727 ) -> fidl::client::QueryResponseFut<
728 NetworkRegistrySetDefaultResult,
729 fidl::encoding::DefaultFuchsiaResourceDialect,
730 > {
731 FuchsiaNetworksProxyInterface::r#set_default(self, network_id)
732 }
733
734 pub fn r#add(
739 &self,
740 mut network: &Network,
741 ) -> fidl::client::QueryResponseFut<
742 NetworkRegistryAddResult,
743 fidl::encoding::DefaultFuchsiaResourceDialect,
744 > {
745 FuchsiaNetworksProxyInterface::r#add(self, network)
746 }
747
748 pub fn r#update(
752 &self,
753 mut network: &Network,
754 ) -> fidl::client::QueryResponseFut<
755 NetworkRegistryUpdateResult,
756 fidl::encoding::DefaultFuchsiaResourceDialect,
757 > {
758 FuchsiaNetworksProxyInterface::r#update(self, network)
759 }
760
761 pub fn r#remove(
765 &self,
766 mut network_id: u32,
767 ) -> fidl::client::QueryResponseFut<
768 NetworkRegistryRemoveResult,
769 fidl::encoding::DefaultFuchsiaResourceDialect,
770 > {
771 FuchsiaNetworksProxyInterface::r#remove(self, network_id)
772 }
773}
774
775impl FuchsiaNetworksProxyInterface for FuchsiaNetworksProxy {
776 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
777 NetworkRegistrySetDefaultResult,
778 fidl::encoding::DefaultFuchsiaResourceDialect,
779 >;
780 fn r#set_default(
781 &self,
782 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
783 ) -> Self::SetDefaultResponseFut {
784 fn _decode(
785 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
786 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
787 let _response = fidl::client::decode_transaction_body::<
788 fidl::encoding::ResultType<
789 fidl::encoding::EmptyStruct,
790 NetworkRegistrySetDefaultError,
791 >,
792 fidl::encoding::DefaultFuchsiaResourceDialect,
793 0x787930c67b8cf82c,
794 >(_buf?)?;
795 Ok(_response.map(|x| x))
796 }
797 self.client.send_query_and_decode::<
798 NetworkRegistrySetDefaultRequest,
799 NetworkRegistrySetDefaultResult,
800 >(
801 (network_id,),
802 0x787930c67b8cf82c,
803 fidl::encoding::DynamicFlags::empty(),
804 _decode,
805 )
806 }
807
808 type AddResponseFut = fidl::client::QueryResponseFut<
809 NetworkRegistryAddResult,
810 fidl::encoding::DefaultFuchsiaResourceDialect,
811 >;
812 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
813 fn _decode(
814 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
815 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
816 let _response = fidl::client::decode_transaction_body::<
817 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
818 fidl::encoding::DefaultFuchsiaResourceDialect,
819 0x197e70a1cbeab3ad,
820 >(_buf?)?;
821 Ok(_response.map(|x| x))
822 }
823 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
824 (network,),
825 0x197e70a1cbeab3ad,
826 fidl::encoding::DynamicFlags::empty(),
827 _decode,
828 )
829 }
830
831 type UpdateResponseFut = fidl::client::QueryResponseFut<
832 NetworkRegistryUpdateResult,
833 fidl::encoding::DefaultFuchsiaResourceDialect,
834 >;
835 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
836 fn _decode(
837 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
838 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
839 let _response = fidl::client::decode_transaction_body::<
840 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
841 fidl::encoding::DefaultFuchsiaResourceDialect,
842 0x3bc790ae5418ff0e,
843 >(_buf?)?;
844 Ok(_response.map(|x| x))
845 }
846 self.client
847 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
848 (network,),
849 0x3bc790ae5418ff0e,
850 fidl::encoding::DynamicFlags::empty(),
851 _decode,
852 )
853 }
854
855 type RemoveResponseFut = fidl::client::QueryResponseFut<
856 NetworkRegistryRemoveResult,
857 fidl::encoding::DefaultFuchsiaResourceDialect,
858 >;
859 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
860 fn _decode(
861 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
862 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
863 let _response = fidl::client::decode_transaction_body::<
864 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
865 fidl::encoding::DefaultFuchsiaResourceDialect,
866 0x1302df41dca6379e,
867 >(_buf?)?;
868 Ok(_response.map(|x| x))
869 }
870 self.client
871 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
872 (network_id,),
873 0x1302df41dca6379e,
874 fidl::encoding::DynamicFlags::empty(),
875 _decode,
876 )
877 }
878}
879
880pub struct FuchsiaNetworksEventStream {
881 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
882}
883
884impl std::marker::Unpin for FuchsiaNetworksEventStream {}
885
886impl futures::stream::FusedStream for FuchsiaNetworksEventStream {
887 fn is_terminated(&self) -> bool {
888 self.event_receiver.is_terminated()
889 }
890}
891
892impl futures::Stream for FuchsiaNetworksEventStream {
893 type Item = Result<FuchsiaNetworksEvent, fidl::Error>;
894
895 fn poll_next(
896 mut self: std::pin::Pin<&mut Self>,
897 cx: &mut std::task::Context<'_>,
898 ) -> std::task::Poll<Option<Self::Item>> {
899 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
900 &mut self.event_receiver,
901 cx
902 )?) {
903 Some(buf) => std::task::Poll::Ready(Some(FuchsiaNetworksEvent::decode(buf))),
904 None => std::task::Poll::Ready(None),
905 }
906 }
907}
908
909#[derive(Debug)]
910pub enum FuchsiaNetworksEvent {}
911
912impl FuchsiaNetworksEvent {
913 fn decode(
915 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
916 ) -> Result<FuchsiaNetworksEvent, fidl::Error> {
917 let (bytes, _handles) = buf.split_mut();
918 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
919 debug_assert_eq!(tx_header.tx_id, 0);
920 match tx_header.ordinal {
921 _ => Err(fidl::Error::UnknownOrdinal {
922 ordinal: tx_header.ordinal,
923 protocol_name:
924 <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
925 }),
926 }
927 }
928}
929
930pub struct FuchsiaNetworksRequestStream {
932 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
933 is_terminated: bool,
934}
935
936impl std::marker::Unpin for FuchsiaNetworksRequestStream {}
937
938impl futures::stream::FusedStream for FuchsiaNetworksRequestStream {
939 fn is_terminated(&self) -> bool {
940 self.is_terminated
941 }
942}
943
944impl fidl::endpoints::RequestStream for FuchsiaNetworksRequestStream {
945 type Protocol = FuchsiaNetworksMarker;
946 type ControlHandle = FuchsiaNetworksControlHandle;
947
948 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
949 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
950 }
951
952 fn control_handle(&self) -> Self::ControlHandle {
953 FuchsiaNetworksControlHandle { inner: self.inner.clone() }
954 }
955
956 fn into_inner(
957 self,
958 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
959 {
960 (self.inner, self.is_terminated)
961 }
962
963 fn from_inner(
964 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
965 is_terminated: bool,
966 ) -> Self {
967 Self { inner, is_terminated }
968 }
969}
970
971impl futures::Stream for FuchsiaNetworksRequestStream {
972 type Item = Result<FuchsiaNetworksRequest, fidl::Error>;
973
974 fn poll_next(
975 mut self: std::pin::Pin<&mut Self>,
976 cx: &mut std::task::Context<'_>,
977 ) -> std::task::Poll<Option<Self::Item>> {
978 let this = &mut *self;
979 if this.inner.check_shutdown(cx) {
980 this.is_terminated = true;
981 return std::task::Poll::Ready(None);
982 }
983 if this.is_terminated {
984 panic!("polled FuchsiaNetworksRequestStream after completion");
985 }
986 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
987 |bytes, handles| {
988 match this.inner.channel().read_etc(cx, bytes, handles) {
989 std::task::Poll::Ready(Ok(())) => {}
990 std::task::Poll::Pending => return std::task::Poll::Pending,
991 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
992 this.is_terminated = true;
993 return std::task::Poll::Ready(None);
994 }
995 std::task::Poll::Ready(Err(e)) => {
996 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
997 e.into(),
998 ))));
999 }
1000 }
1001
1002 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1004
1005 std::task::Poll::Ready(Some(match header.ordinal {
1006 0x787930c67b8cf82c => {
1007 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1008 let mut req = fidl::new_empty!(
1009 NetworkRegistrySetDefaultRequest,
1010 fidl::encoding::DefaultFuchsiaResourceDialect
1011 );
1012 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
1013 let control_handle =
1014 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1015 Ok(FuchsiaNetworksRequest::SetDefault {
1016 network_id: req.network_id,
1017
1018 responder: FuchsiaNetworksSetDefaultResponder {
1019 control_handle: std::mem::ManuallyDrop::new(control_handle),
1020 tx_id: header.tx_id,
1021 },
1022 })
1023 }
1024 0x197e70a1cbeab3ad => {
1025 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1026 let mut req = fidl::new_empty!(
1027 NetworkRegistryAddRequest,
1028 fidl::encoding::DefaultFuchsiaResourceDialect
1029 );
1030 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
1031 let control_handle =
1032 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1033 Ok(FuchsiaNetworksRequest::Add {
1034 network: req.network,
1035
1036 responder: FuchsiaNetworksAddResponder {
1037 control_handle: std::mem::ManuallyDrop::new(control_handle),
1038 tx_id: header.tx_id,
1039 },
1040 })
1041 }
1042 0x3bc790ae5418ff0e => {
1043 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1044 let mut req = fidl::new_empty!(
1045 NetworkRegistryUpdateRequest,
1046 fidl::encoding::DefaultFuchsiaResourceDialect
1047 );
1048 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
1049 let control_handle =
1050 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1051 Ok(FuchsiaNetworksRequest::Update {
1052 network: req.network,
1053
1054 responder: FuchsiaNetworksUpdateResponder {
1055 control_handle: std::mem::ManuallyDrop::new(control_handle),
1056 tx_id: header.tx_id,
1057 },
1058 })
1059 }
1060 0x1302df41dca6379e => {
1061 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1062 let mut req = fidl::new_empty!(
1063 NetworkRegistryRemoveRequest,
1064 fidl::encoding::DefaultFuchsiaResourceDialect
1065 );
1066 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
1067 let control_handle =
1068 FuchsiaNetworksControlHandle { inner: this.inner.clone() };
1069 Ok(FuchsiaNetworksRequest::Remove {
1070 network_id: req.network_id,
1071
1072 responder: FuchsiaNetworksRemoveResponder {
1073 control_handle: std::mem::ManuallyDrop::new(control_handle),
1074 tx_id: header.tx_id,
1075 },
1076 })
1077 }
1078 _ => Err(fidl::Error::UnknownOrdinal {
1079 ordinal: header.ordinal,
1080 protocol_name:
1081 <FuchsiaNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1082 }),
1083 }))
1084 },
1085 )
1086 }
1087}
1088
1089#[derive(Debug)]
1094pub enum FuchsiaNetworksRequest {
1095 SetDefault {
1099 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
1100 responder: FuchsiaNetworksSetDefaultResponder,
1101 },
1102 Add { network: Network, responder: FuchsiaNetworksAddResponder },
1107 Update { network: Network, responder: FuchsiaNetworksUpdateResponder },
1111 Remove { network_id: u32, responder: FuchsiaNetworksRemoveResponder },
1115}
1116
1117impl FuchsiaNetworksRequest {
1118 #[allow(irrefutable_let_patterns)]
1119 pub fn into_set_default(
1120 self,
1121 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, FuchsiaNetworksSetDefaultResponder)>
1122 {
1123 if let FuchsiaNetworksRequest::SetDefault { network_id, responder } = self {
1124 Some((network_id, responder))
1125 } else {
1126 None
1127 }
1128 }
1129
1130 #[allow(irrefutable_let_patterns)]
1131 pub fn into_add(self) -> Option<(Network, FuchsiaNetworksAddResponder)> {
1132 if let FuchsiaNetworksRequest::Add { network, responder } = self {
1133 Some((network, responder))
1134 } else {
1135 None
1136 }
1137 }
1138
1139 #[allow(irrefutable_let_patterns)]
1140 pub fn into_update(self) -> Option<(Network, FuchsiaNetworksUpdateResponder)> {
1141 if let FuchsiaNetworksRequest::Update { network, responder } = self {
1142 Some((network, responder))
1143 } else {
1144 None
1145 }
1146 }
1147
1148 #[allow(irrefutable_let_patterns)]
1149 pub fn into_remove(self) -> Option<(u32, FuchsiaNetworksRemoveResponder)> {
1150 if let FuchsiaNetworksRequest::Remove { network_id, responder } = self {
1151 Some((network_id, responder))
1152 } else {
1153 None
1154 }
1155 }
1156
1157 pub fn method_name(&self) -> &'static str {
1159 match *self {
1160 FuchsiaNetworksRequest::SetDefault { .. } => "set_default",
1161 FuchsiaNetworksRequest::Add { .. } => "add",
1162 FuchsiaNetworksRequest::Update { .. } => "update",
1163 FuchsiaNetworksRequest::Remove { .. } => "remove",
1164 }
1165 }
1166}
1167
1168#[derive(Debug, Clone)]
1169pub struct FuchsiaNetworksControlHandle {
1170 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1171}
1172
1173impl fidl::endpoints::ControlHandle for FuchsiaNetworksControlHandle {
1174 fn shutdown(&self) {
1175 self.inner.shutdown()
1176 }
1177
1178 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1179 self.inner.shutdown_with_epitaph(status)
1180 }
1181
1182 fn is_closed(&self) -> bool {
1183 self.inner.channel().is_closed()
1184 }
1185 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1186 self.inner.channel().on_closed()
1187 }
1188
1189 #[cfg(target_os = "fuchsia")]
1190 fn signal_peer(
1191 &self,
1192 clear_mask: zx::Signals,
1193 set_mask: zx::Signals,
1194 ) -> Result<(), zx_status::Status> {
1195 use fidl::Peered;
1196 self.inner.channel().signal_peer(clear_mask, set_mask)
1197 }
1198}
1199
1200impl FuchsiaNetworksControlHandle {}
1201
1202#[must_use = "FIDL methods require a response to be sent"]
1203#[derive(Debug)]
1204pub struct FuchsiaNetworksSetDefaultResponder {
1205 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1206 tx_id: u32,
1207}
1208
1209impl std::ops::Drop for FuchsiaNetworksSetDefaultResponder {
1213 fn drop(&mut self) {
1214 self.control_handle.shutdown();
1215 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1217 }
1218}
1219
1220impl fidl::endpoints::Responder for FuchsiaNetworksSetDefaultResponder {
1221 type ControlHandle = FuchsiaNetworksControlHandle;
1222
1223 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1224 &self.control_handle
1225 }
1226
1227 fn drop_without_shutdown(mut self) {
1228 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1230 std::mem::forget(self);
1232 }
1233}
1234
1235impl FuchsiaNetworksSetDefaultResponder {
1236 pub fn send(
1240 self,
1241 mut result: Result<(), NetworkRegistrySetDefaultError>,
1242 ) -> Result<(), fidl::Error> {
1243 let _result = self.send_raw(result);
1244 if _result.is_err() {
1245 self.control_handle.shutdown();
1246 }
1247 self.drop_without_shutdown();
1248 _result
1249 }
1250
1251 pub fn send_no_shutdown_on_err(
1253 self,
1254 mut result: Result<(), NetworkRegistrySetDefaultError>,
1255 ) -> Result<(), fidl::Error> {
1256 let _result = self.send_raw(result);
1257 self.drop_without_shutdown();
1258 _result
1259 }
1260
1261 fn send_raw(
1262 &self,
1263 mut result: Result<(), NetworkRegistrySetDefaultError>,
1264 ) -> Result<(), fidl::Error> {
1265 self.control_handle.inner.send::<fidl::encoding::ResultType<
1266 fidl::encoding::EmptyStruct,
1267 NetworkRegistrySetDefaultError,
1268 >>(
1269 result,
1270 self.tx_id,
1271 0x787930c67b8cf82c,
1272 fidl::encoding::DynamicFlags::empty(),
1273 )
1274 }
1275}
1276
1277#[must_use = "FIDL methods require a response to be sent"]
1278#[derive(Debug)]
1279pub struct FuchsiaNetworksAddResponder {
1280 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1281 tx_id: u32,
1282}
1283
1284impl std::ops::Drop for FuchsiaNetworksAddResponder {
1288 fn drop(&mut self) {
1289 self.control_handle.shutdown();
1290 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1292 }
1293}
1294
1295impl fidl::endpoints::Responder for FuchsiaNetworksAddResponder {
1296 type ControlHandle = FuchsiaNetworksControlHandle;
1297
1298 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1299 &self.control_handle
1300 }
1301
1302 fn drop_without_shutdown(mut self) {
1303 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1305 std::mem::forget(self);
1307 }
1308}
1309
1310impl FuchsiaNetworksAddResponder {
1311 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1315 let _result = self.send_raw(result);
1316 if _result.is_err() {
1317 self.control_handle.shutdown();
1318 }
1319 self.drop_without_shutdown();
1320 _result
1321 }
1322
1323 pub fn send_no_shutdown_on_err(
1325 self,
1326 mut result: Result<(), NetworkRegistryAddError>,
1327 ) -> Result<(), fidl::Error> {
1328 let _result = self.send_raw(result);
1329 self.drop_without_shutdown();
1330 _result
1331 }
1332
1333 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1334 self.control_handle.inner.send::<fidl::encoding::ResultType<
1335 fidl::encoding::EmptyStruct,
1336 NetworkRegistryAddError,
1337 >>(
1338 result,
1339 self.tx_id,
1340 0x197e70a1cbeab3ad,
1341 fidl::encoding::DynamicFlags::empty(),
1342 )
1343 }
1344}
1345
1346#[must_use = "FIDL methods require a response to be sent"]
1347#[derive(Debug)]
1348pub struct FuchsiaNetworksUpdateResponder {
1349 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1350 tx_id: u32,
1351}
1352
1353impl std::ops::Drop for FuchsiaNetworksUpdateResponder {
1357 fn drop(&mut self) {
1358 self.control_handle.shutdown();
1359 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1361 }
1362}
1363
1364impl fidl::endpoints::Responder for FuchsiaNetworksUpdateResponder {
1365 type ControlHandle = FuchsiaNetworksControlHandle;
1366
1367 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1368 &self.control_handle
1369 }
1370
1371 fn drop_without_shutdown(mut self) {
1372 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1374 std::mem::forget(self);
1376 }
1377}
1378
1379impl FuchsiaNetworksUpdateResponder {
1380 pub fn send(
1384 self,
1385 mut result: Result<(), NetworkRegistryUpdateError>,
1386 ) -> Result<(), fidl::Error> {
1387 let _result = self.send_raw(result);
1388 if _result.is_err() {
1389 self.control_handle.shutdown();
1390 }
1391 self.drop_without_shutdown();
1392 _result
1393 }
1394
1395 pub fn send_no_shutdown_on_err(
1397 self,
1398 mut result: Result<(), NetworkRegistryUpdateError>,
1399 ) -> Result<(), fidl::Error> {
1400 let _result = self.send_raw(result);
1401 self.drop_without_shutdown();
1402 _result
1403 }
1404
1405 fn send_raw(
1406 &self,
1407 mut result: Result<(), NetworkRegistryUpdateError>,
1408 ) -> Result<(), fidl::Error> {
1409 self.control_handle.inner.send::<fidl::encoding::ResultType<
1410 fidl::encoding::EmptyStruct,
1411 NetworkRegistryUpdateError,
1412 >>(
1413 result,
1414 self.tx_id,
1415 0x3bc790ae5418ff0e,
1416 fidl::encoding::DynamicFlags::empty(),
1417 )
1418 }
1419}
1420
1421#[must_use = "FIDL methods require a response to be sent"]
1422#[derive(Debug)]
1423pub struct FuchsiaNetworksRemoveResponder {
1424 control_handle: std::mem::ManuallyDrop<FuchsiaNetworksControlHandle>,
1425 tx_id: u32,
1426}
1427
1428impl std::ops::Drop for FuchsiaNetworksRemoveResponder {
1432 fn drop(&mut self) {
1433 self.control_handle.shutdown();
1434 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1436 }
1437}
1438
1439impl fidl::endpoints::Responder for FuchsiaNetworksRemoveResponder {
1440 type ControlHandle = FuchsiaNetworksControlHandle;
1441
1442 fn control_handle(&self) -> &FuchsiaNetworksControlHandle {
1443 &self.control_handle
1444 }
1445
1446 fn drop_without_shutdown(mut self) {
1447 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1449 std::mem::forget(self);
1451 }
1452}
1453
1454impl FuchsiaNetworksRemoveResponder {
1455 pub fn send(
1459 self,
1460 mut result: Result<(), NetworkRegistryRemoveError>,
1461 ) -> Result<(), fidl::Error> {
1462 let _result = self.send_raw(result);
1463 if _result.is_err() {
1464 self.control_handle.shutdown();
1465 }
1466 self.drop_without_shutdown();
1467 _result
1468 }
1469
1470 pub fn send_no_shutdown_on_err(
1472 self,
1473 mut result: Result<(), NetworkRegistryRemoveError>,
1474 ) -> Result<(), fidl::Error> {
1475 let _result = self.send_raw(result);
1476 self.drop_without_shutdown();
1477 _result
1478 }
1479
1480 fn send_raw(
1481 &self,
1482 mut result: Result<(), NetworkRegistryRemoveError>,
1483 ) -> Result<(), fidl::Error> {
1484 self.control_handle.inner.send::<fidl::encoding::ResultType<
1485 fidl::encoding::EmptyStruct,
1486 NetworkRegistryRemoveError,
1487 >>(
1488 result,
1489 self.tx_id,
1490 0x1302df41dca6379e,
1491 fidl::encoding::DynamicFlags::empty(),
1492 )
1493 }
1494}
1495
1496#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1497pub struct NetworkRegistryMarker;
1498
1499impl fidl::endpoints::ProtocolMarker for NetworkRegistryMarker {
1500 type Proxy = NetworkRegistryProxy;
1501 type RequestStream = NetworkRegistryRequestStream;
1502 #[cfg(target_os = "fuchsia")]
1503 type SynchronousProxy = NetworkRegistrySynchronousProxy;
1504
1505 const DEBUG_NAME: &'static str = "(anonymous) NetworkRegistry";
1506}
1507pub type NetworkRegistrySetDefaultResult = Result<(), NetworkRegistrySetDefaultError>;
1508pub type NetworkRegistryAddResult = Result<(), NetworkRegistryAddError>;
1509pub type NetworkRegistryUpdateResult = Result<(), NetworkRegistryUpdateError>;
1510pub type NetworkRegistryRemoveResult = Result<(), NetworkRegistryRemoveError>;
1511
1512pub trait NetworkRegistryProxyInterface: Send + Sync {
1513 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
1514 + Send;
1515 fn r#set_default(
1516 &self,
1517 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1518 ) -> Self::SetDefaultResponseFut;
1519 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
1520 + Send;
1521 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
1522 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
1523 + Send;
1524 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
1525 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
1526 + Send;
1527 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
1528}
1529#[derive(Debug)]
1530#[cfg(target_os = "fuchsia")]
1531pub struct NetworkRegistrySynchronousProxy {
1532 client: fidl::client::sync::Client,
1533}
1534
1535#[cfg(target_os = "fuchsia")]
1536impl fidl::endpoints::SynchronousProxy for NetworkRegistrySynchronousProxy {
1537 type Proxy = NetworkRegistryProxy;
1538 type Protocol = NetworkRegistryMarker;
1539
1540 fn from_channel(inner: fidl::Channel) -> Self {
1541 Self::new(inner)
1542 }
1543
1544 fn into_channel(self) -> fidl::Channel {
1545 self.client.into_channel()
1546 }
1547
1548 fn as_channel(&self) -> &fidl::Channel {
1549 self.client.as_channel()
1550 }
1551}
1552
1553#[cfg(target_os = "fuchsia")]
1554impl NetworkRegistrySynchronousProxy {
1555 pub fn new(channel: fidl::Channel) -> Self {
1556 let protocol_name = <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1557 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1558 }
1559
1560 pub fn into_channel(self) -> fidl::Channel {
1561 self.client.into_channel()
1562 }
1563
1564 pub fn wait_for_event(
1567 &self,
1568 deadline: zx::MonotonicInstant,
1569 ) -> Result<NetworkRegistryEvent, fidl::Error> {
1570 NetworkRegistryEvent::decode(self.client.wait_for_event(deadline)?)
1571 }
1572
1573 pub fn r#set_default(
1577 &self,
1578 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1579 ___deadline: zx::MonotonicInstant,
1580 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1581 let _response =
1582 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
1583 fidl::encoding::EmptyStruct,
1584 NetworkRegistrySetDefaultError,
1585 >>(
1586 (network_id,),
1587 0x787930c67b8cf82c,
1588 fidl::encoding::DynamicFlags::empty(),
1589 ___deadline,
1590 )?;
1591 Ok(_response.map(|x| x))
1592 }
1593
1594 pub fn r#add(
1599 &self,
1600 mut network: &Network,
1601 ___deadline: zx::MonotonicInstant,
1602 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1603 let _response =
1604 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
1605 fidl::encoding::EmptyStruct,
1606 NetworkRegistryAddError,
1607 >>(
1608 (network,),
1609 0x197e70a1cbeab3ad,
1610 fidl::encoding::DynamicFlags::empty(),
1611 ___deadline,
1612 )?;
1613 Ok(_response.map(|x| x))
1614 }
1615
1616 pub fn r#update(
1620 &self,
1621 mut network: &Network,
1622 ___deadline: zx::MonotonicInstant,
1623 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1624 let _response =
1625 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
1626 fidl::encoding::EmptyStruct,
1627 NetworkRegistryUpdateError,
1628 >>(
1629 (network,),
1630 0x3bc790ae5418ff0e,
1631 fidl::encoding::DynamicFlags::empty(),
1632 ___deadline,
1633 )?;
1634 Ok(_response.map(|x| x))
1635 }
1636
1637 pub fn r#remove(
1641 &self,
1642 mut network_id: u32,
1643 ___deadline: zx::MonotonicInstant,
1644 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1645 let _response =
1646 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
1647 fidl::encoding::EmptyStruct,
1648 NetworkRegistryRemoveError,
1649 >>(
1650 (network_id,),
1651 0x1302df41dca6379e,
1652 fidl::encoding::DynamicFlags::empty(),
1653 ___deadline,
1654 )?;
1655 Ok(_response.map(|x| x))
1656 }
1657}
1658
1659#[cfg(target_os = "fuchsia")]
1660impl From<NetworkRegistrySynchronousProxy> for zx::NullableHandle {
1661 fn from(value: NetworkRegistrySynchronousProxy) -> Self {
1662 value.into_channel().into()
1663 }
1664}
1665
1666#[cfg(target_os = "fuchsia")]
1667impl From<fidl::Channel> for NetworkRegistrySynchronousProxy {
1668 fn from(value: fidl::Channel) -> Self {
1669 Self::new(value)
1670 }
1671}
1672
1673#[cfg(target_os = "fuchsia")]
1674impl fidl::endpoints::FromClient for NetworkRegistrySynchronousProxy {
1675 type Protocol = NetworkRegistryMarker;
1676
1677 fn from_client(value: fidl::endpoints::ClientEnd<NetworkRegistryMarker>) -> Self {
1678 Self::new(value.into_channel())
1679 }
1680}
1681
1682#[derive(Debug, Clone)]
1683pub struct NetworkRegistryProxy {
1684 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1685}
1686
1687impl fidl::endpoints::Proxy for NetworkRegistryProxy {
1688 type Protocol = NetworkRegistryMarker;
1689
1690 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1691 Self::new(inner)
1692 }
1693
1694 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1695 self.client.into_channel().map_err(|client| Self { client })
1696 }
1697
1698 fn as_channel(&self) -> &::fidl::AsyncChannel {
1699 self.client.as_channel()
1700 }
1701}
1702
1703impl NetworkRegistryProxy {
1704 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1706 let protocol_name = <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1707 Self { client: fidl::client::Client::new(channel, protocol_name) }
1708 }
1709
1710 pub fn take_event_stream(&self) -> NetworkRegistryEventStream {
1716 NetworkRegistryEventStream { event_receiver: self.client.take_event_receiver() }
1717 }
1718
1719 pub fn r#set_default(
1723 &self,
1724 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1725 ) -> fidl::client::QueryResponseFut<
1726 NetworkRegistrySetDefaultResult,
1727 fidl::encoding::DefaultFuchsiaResourceDialect,
1728 > {
1729 NetworkRegistryProxyInterface::r#set_default(self, network_id)
1730 }
1731
1732 pub fn r#add(
1737 &self,
1738 mut network: &Network,
1739 ) -> fidl::client::QueryResponseFut<
1740 NetworkRegistryAddResult,
1741 fidl::encoding::DefaultFuchsiaResourceDialect,
1742 > {
1743 NetworkRegistryProxyInterface::r#add(self, network)
1744 }
1745
1746 pub fn r#update(
1750 &self,
1751 mut network: &Network,
1752 ) -> fidl::client::QueryResponseFut<
1753 NetworkRegistryUpdateResult,
1754 fidl::encoding::DefaultFuchsiaResourceDialect,
1755 > {
1756 NetworkRegistryProxyInterface::r#update(self, network)
1757 }
1758
1759 pub fn r#remove(
1763 &self,
1764 mut network_id: u32,
1765 ) -> fidl::client::QueryResponseFut<
1766 NetworkRegistryRemoveResult,
1767 fidl::encoding::DefaultFuchsiaResourceDialect,
1768 > {
1769 NetworkRegistryProxyInterface::r#remove(self, network_id)
1770 }
1771}
1772
1773impl NetworkRegistryProxyInterface for NetworkRegistryProxy {
1774 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
1775 NetworkRegistrySetDefaultResult,
1776 fidl::encoding::DefaultFuchsiaResourceDialect,
1777 >;
1778 fn r#set_default(
1779 &self,
1780 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1781 ) -> Self::SetDefaultResponseFut {
1782 fn _decode(
1783 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1784 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1785 let _response = fidl::client::decode_transaction_body::<
1786 fidl::encoding::ResultType<
1787 fidl::encoding::EmptyStruct,
1788 NetworkRegistrySetDefaultError,
1789 >,
1790 fidl::encoding::DefaultFuchsiaResourceDialect,
1791 0x787930c67b8cf82c,
1792 >(_buf?)?;
1793 Ok(_response.map(|x| x))
1794 }
1795 self.client.send_query_and_decode::<
1796 NetworkRegistrySetDefaultRequest,
1797 NetworkRegistrySetDefaultResult,
1798 >(
1799 (network_id,),
1800 0x787930c67b8cf82c,
1801 fidl::encoding::DynamicFlags::empty(),
1802 _decode,
1803 )
1804 }
1805
1806 type AddResponseFut = fidl::client::QueryResponseFut<
1807 NetworkRegistryAddResult,
1808 fidl::encoding::DefaultFuchsiaResourceDialect,
1809 >;
1810 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
1811 fn _decode(
1812 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1813 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1814 let _response = fidl::client::decode_transaction_body::<
1815 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
1816 fidl::encoding::DefaultFuchsiaResourceDialect,
1817 0x197e70a1cbeab3ad,
1818 >(_buf?)?;
1819 Ok(_response.map(|x| x))
1820 }
1821 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
1822 (network,),
1823 0x197e70a1cbeab3ad,
1824 fidl::encoding::DynamicFlags::empty(),
1825 _decode,
1826 )
1827 }
1828
1829 type UpdateResponseFut = fidl::client::QueryResponseFut<
1830 NetworkRegistryUpdateResult,
1831 fidl::encoding::DefaultFuchsiaResourceDialect,
1832 >;
1833 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
1834 fn _decode(
1835 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1836 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1837 let _response = fidl::client::decode_transaction_body::<
1838 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
1839 fidl::encoding::DefaultFuchsiaResourceDialect,
1840 0x3bc790ae5418ff0e,
1841 >(_buf?)?;
1842 Ok(_response.map(|x| x))
1843 }
1844 self.client
1845 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
1846 (network,),
1847 0x3bc790ae5418ff0e,
1848 fidl::encoding::DynamicFlags::empty(),
1849 _decode,
1850 )
1851 }
1852
1853 type RemoveResponseFut = fidl::client::QueryResponseFut<
1854 NetworkRegistryRemoveResult,
1855 fidl::encoding::DefaultFuchsiaResourceDialect,
1856 >;
1857 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
1858 fn _decode(
1859 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1860 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1861 let _response = fidl::client::decode_transaction_body::<
1862 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
1863 fidl::encoding::DefaultFuchsiaResourceDialect,
1864 0x1302df41dca6379e,
1865 >(_buf?)?;
1866 Ok(_response.map(|x| x))
1867 }
1868 self.client
1869 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
1870 (network_id,),
1871 0x1302df41dca6379e,
1872 fidl::encoding::DynamicFlags::empty(),
1873 _decode,
1874 )
1875 }
1876}
1877
1878pub struct NetworkRegistryEventStream {
1879 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1880}
1881
1882impl std::marker::Unpin for NetworkRegistryEventStream {}
1883
1884impl futures::stream::FusedStream for NetworkRegistryEventStream {
1885 fn is_terminated(&self) -> bool {
1886 self.event_receiver.is_terminated()
1887 }
1888}
1889
1890impl futures::Stream for NetworkRegistryEventStream {
1891 type Item = Result<NetworkRegistryEvent, fidl::Error>;
1892
1893 fn poll_next(
1894 mut self: std::pin::Pin<&mut Self>,
1895 cx: &mut std::task::Context<'_>,
1896 ) -> std::task::Poll<Option<Self::Item>> {
1897 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1898 &mut self.event_receiver,
1899 cx
1900 )?) {
1901 Some(buf) => std::task::Poll::Ready(Some(NetworkRegistryEvent::decode(buf))),
1902 None => std::task::Poll::Ready(None),
1903 }
1904 }
1905}
1906
1907#[derive(Debug)]
1908pub enum NetworkRegistryEvent {}
1909
1910impl NetworkRegistryEvent {
1911 fn decode(
1913 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1914 ) -> Result<NetworkRegistryEvent, fidl::Error> {
1915 let (bytes, _handles) = buf.split_mut();
1916 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1917 debug_assert_eq!(tx_header.tx_id, 0);
1918 match tx_header.ordinal {
1919 _ => Err(fidl::Error::UnknownOrdinal {
1920 ordinal: tx_header.ordinal,
1921 protocol_name:
1922 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1923 }),
1924 }
1925 }
1926}
1927
1928pub struct NetworkRegistryRequestStream {
1930 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1931 is_terminated: bool,
1932}
1933
1934impl std::marker::Unpin for NetworkRegistryRequestStream {}
1935
1936impl futures::stream::FusedStream for NetworkRegistryRequestStream {
1937 fn is_terminated(&self) -> bool {
1938 self.is_terminated
1939 }
1940}
1941
1942impl fidl::endpoints::RequestStream for NetworkRegistryRequestStream {
1943 type Protocol = NetworkRegistryMarker;
1944 type ControlHandle = NetworkRegistryControlHandle;
1945
1946 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1947 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1948 }
1949
1950 fn control_handle(&self) -> Self::ControlHandle {
1951 NetworkRegistryControlHandle { inner: self.inner.clone() }
1952 }
1953
1954 fn into_inner(
1955 self,
1956 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1957 {
1958 (self.inner, self.is_terminated)
1959 }
1960
1961 fn from_inner(
1962 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1963 is_terminated: bool,
1964 ) -> Self {
1965 Self { inner, is_terminated }
1966 }
1967}
1968
1969impl futures::Stream for NetworkRegistryRequestStream {
1970 type Item = Result<NetworkRegistryRequest, fidl::Error>;
1971
1972 fn poll_next(
1973 mut self: std::pin::Pin<&mut Self>,
1974 cx: &mut std::task::Context<'_>,
1975 ) -> std::task::Poll<Option<Self::Item>> {
1976 let this = &mut *self;
1977 if this.inner.check_shutdown(cx) {
1978 this.is_terminated = true;
1979 return std::task::Poll::Ready(None);
1980 }
1981 if this.is_terminated {
1982 panic!("polled NetworkRegistryRequestStream after completion");
1983 }
1984 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1985 |bytes, handles| {
1986 match this.inner.channel().read_etc(cx, bytes, handles) {
1987 std::task::Poll::Ready(Ok(())) => {}
1988 std::task::Poll::Pending => return std::task::Poll::Pending,
1989 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1990 this.is_terminated = true;
1991 return std::task::Poll::Ready(None);
1992 }
1993 std::task::Poll::Ready(Err(e)) => {
1994 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1995 e.into(),
1996 ))));
1997 }
1998 }
1999
2000 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2002
2003 std::task::Poll::Ready(Some(match header.ordinal {
2004 0x787930c67b8cf82c => {
2005 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2006 let mut req = fidl::new_empty!(
2007 NetworkRegistrySetDefaultRequest,
2008 fidl::encoding::DefaultFuchsiaResourceDialect
2009 );
2010 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
2011 let control_handle =
2012 NetworkRegistryControlHandle { inner: this.inner.clone() };
2013 Ok(NetworkRegistryRequest::SetDefault {
2014 network_id: req.network_id,
2015
2016 responder: NetworkRegistrySetDefaultResponder {
2017 control_handle: std::mem::ManuallyDrop::new(control_handle),
2018 tx_id: header.tx_id,
2019 },
2020 })
2021 }
2022 0x197e70a1cbeab3ad => {
2023 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2024 let mut req = fidl::new_empty!(
2025 NetworkRegistryAddRequest,
2026 fidl::encoding::DefaultFuchsiaResourceDialect
2027 );
2028 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
2029 let control_handle =
2030 NetworkRegistryControlHandle { inner: this.inner.clone() };
2031 Ok(NetworkRegistryRequest::Add {
2032 network: req.network,
2033
2034 responder: NetworkRegistryAddResponder {
2035 control_handle: std::mem::ManuallyDrop::new(control_handle),
2036 tx_id: header.tx_id,
2037 },
2038 })
2039 }
2040 0x3bc790ae5418ff0e => {
2041 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2042 let mut req = fidl::new_empty!(
2043 NetworkRegistryUpdateRequest,
2044 fidl::encoding::DefaultFuchsiaResourceDialect
2045 );
2046 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
2047 let control_handle =
2048 NetworkRegistryControlHandle { inner: this.inner.clone() };
2049 Ok(NetworkRegistryRequest::Update {
2050 network: req.network,
2051
2052 responder: NetworkRegistryUpdateResponder {
2053 control_handle: std::mem::ManuallyDrop::new(control_handle),
2054 tx_id: header.tx_id,
2055 },
2056 })
2057 }
2058 0x1302df41dca6379e => {
2059 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2060 let mut req = fidl::new_empty!(
2061 NetworkRegistryRemoveRequest,
2062 fidl::encoding::DefaultFuchsiaResourceDialect
2063 );
2064 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
2065 let control_handle =
2066 NetworkRegistryControlHandle { inner: this.inner.clone() };
2067 Ok(NetworkRegistryRequest::Remove {
2068 network_id: req.network_id,
2069
2070 responder: NetworkRegistryRemoveResponder {
2071 control_handle: std::mem::ManuallyDrop::new(control_handle),
2072 tx_id: header.tx_id,
2073 },
2074 })
2075 }
2076 _ => Err(fidl::Error::UnknownOrdinal {
2077 ordinal: header.ordinal,
2078 protocol_name:
2079 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2080 }),
2081 }))
2082 },
2083 )
2084 }
2085}
2086
2087#[derive(Debug)]
2088pub enum NetworkRegistryRequest {
2089 SetDefault {
2093 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
2094 responder: NetworkRegistrySetDefaultResponder,
2095 },
2096 Add { network: Network, responder: NetworkRegistryAddResponder },
2101 Update { network: Network, responder: NetworkRegistryUpdateResponder },
2105 Remove { network_id: u32, responder: NetworkRegistryRemoveResponder },
2109}
2110
2111impl NetworkRegistryRequest {
2112 #[allow(irrefutable_let_patterns)]
2113 pub fn into_set_default(
2114 self,
2115 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, NetworkRegistrySetDefaultResponder)>
2116 {
2117 if let NetworkRegistryRequest::SetDefault { network_id, responder } = self {
2118 Some((network_id, responder))
2119 } else {
2120 None
2121 }
2122 }
2123
2124 #[allow(irrefutable_let_patterns)]
2125 pub fn into_add(self) -> Option<(Network, NetworkRegistryAddResponder)> {
2126 if let NetworkRegistryRequest::Add { network, responder } = self {
2127 Some((network, responder))
2128 } else {
2129 None
2130 }
2131 }
2132
2133 #[allow(irrefutable_let_patterns)]
2134 pub fn into_update(self) -> Option<(Network, NetworkRegistryUpdateResponder)> {
2135 if let NetworkRegistryRequest::Update { network, responder } = self {
2136 Some((network, responder))
2137 } else {
2138 None
2139 }
2140 }
2141
2142 #[allow(irrefutable_let_patterns)]
2143 pub fn into_remove(self) -> Option<(u32, NetworkRegistryRemoveResponder)> {
2144 if let NetworkRegistryRequest::Remove { network_id, responder } = self {
2145 Some((network_id, responder))
2146 } else {
2147 None
2148 }
2149 }
2150
2151 pub fn method_name(&self) -> &'static str {
2153 match *self {
2154 NetworkRegistryRequest::SetDefault { .. } => "set_default",
2155 NetworkRegistryRequest::Add { .. } => "add",
2156 NetworkRegistryRequest::Update { .. } => "update",
2157 NetworkRegistryRequest::Remove { .. } => "remove",
2158 }
2159 }
2160}
2161
2162#[derive(Debug, Clone)]
2163pub struct NetworkRegistryControlHandle {
2164 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2165}
2166
2167impl fidl::endpoints::ControlHandle for NetworkRegistryControlHandle {
2168 fn shutdown(&self) {
2169 self.inner.shutdown()
2170 }
2171
2172 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2173 self.inner.shutdown_with_epitaph(status)
2174 }
2175
2176 fn is_closed(&self) -> bool {
2177 self.inner.channel().is_closed()
2178 }
2179 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2180 self.inner.channel().on_closed()
2181 }
2182
2183 #[cfg(target_os = "fuchsia")]
2184 fn signal_peer(
2185 &self,
2186 clear_mask: zx::Signals,
2187 set_mask: zx::Signals,
2188 ) -> Result<(), zx_status::Status> {
2189 use fidl::Peered;
2190 self.inner.channel().signal_peer(clear_mask, set_mask)
2191 }
2192}
2193
2194impl NetworkRegistryControlHandle {}
2195
2196#[must_use = "FIDL methods require a response to be sent"]
2197#[derive(Debug)]
2198pub struct NetworkRegistrySetDefaultResponder {
2199 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2200 tx_id: u32,
2201}
2202
2203impl std::ops::Drop for NetworkRegistrySetDefaultResponder {
2207 fn drop(&mut self) {
2208 self.control_handle.shutdown();
2209 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2211 }
2212}
2213
2214impl fidl::endpoints::Responder for NetworkRegistrySetDefaultResponder {
2215 type ControlHandle = NetworkRegistryControlHandle;
2216
2217 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2218 &self.control_handle
2219 }
2220
2221 fn drop_without_shutdown(mut self) {
2222 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2224 std::mem::forget(self);
2226 }
2227}
2228
2229impl NetworkRegistrySetDefaultResponder {
2230 pub fn send(
2234 self,
2235 mut result: Result<(), NetworkRegistrySetDefaultError>,
2236 ) -> Result<(), fidl::Error> {
2237 let _result = self.send_raw(result);
2238 if _result.is_err() {
2239 self.control_handle.shutdown();
2240 }
2241 self.drop_without_shutdown();
2242 _result
2243 }
2244
2245 pub fn send_no_shutdown_on_err(
2247 self,
2248 mut result: Result<(), NetworkRegistrySetDefaultError>,
2249 ) -> Result<(), fidl::Error> {
2250 let _result = self.send_raw(result);
2251 self.drop_without_shutdown();
2252 _result
2253 }
2254
2255 fn send_raw(
2256 &self,
2257 mut result: Result<(), NetworkRegistrySetDefaultError>,
2258 ) -> Result<(), fidl::Error> {
2259 self.control_handle.inner.send::<fidl::encoding::ResultType<
2260 fidl::encoding::EmptyStruct,
2261 NetworkRegistrySetDefaultError,
2262 >>(
2263 result,
2264 self.tx_id,
2265 0x787930c67b8cf82c,
2266 fidl::encoding::DynamicFlags::empty(),
2267 )
2268 }
2269}
2270
2271#[must_use = "FIDL methods require a response to be sent"]
2272#[derive(Debug)]
2273pub struct NetworkRegistryAddResponder {
2274 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2275 tx_id: u32,
2276}
2277
2278impl std::ops::Drop for NetworkRegistryAddResponder {
2282 fn drop(&mut self) {
2283 self.control_handle.shutdown();
2284 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2286 }
2287}
2288
2289impl fidl::endpoints::Responder for NetworkRegistryAddResponder {
2290 type ControlHandle = NetworkRegistryControlHandle;
2291
2292 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2293 &self.control_handle
2294 }
2295
2296 fn drop_without_shutdown(mut self) {
2297 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2299 std::mem::forget(self);
2301 }
2302}
2303
2304impl NetworkRegistryAddResponder {
2305 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
2309 let _result = self.send_raw(result);
2310 if _result.is_err() {
2311 self.control_handle.shutdown();
2312 }
2313 self.drop_without_shutdown();
2314 _result
2315 }
2316
2317 pub fn send_no_shutdown_on_err(
2319 self,
2320 mut result: Result<(), NetworkRegistryAddError>,
2321 ) -> Result<(), fidl::Error> {
2322 let _result = self.send_raw(result);
2323 self.drop_without_shutdown();
2324 _result
2325 }
2326
2327 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
2328 self.control_handle.inner.send::<fidl::encoding::ResultType<
2329 fidl::encoding::EmptyStruct,
2330 NetworkRegistryAddError,
2331 >>(
2332 result,
2333 self.tx_id,
2334 0x197e70a1cbeab3ad,
2335 fidl::encoding::DynamicFlags::empty(),
2336 )
2337 }
2338}
2339
2340#[must_use = "FIDL methods require a response to be sent"]
2341#[derive(Debug)]
2342pub struct NetworkRegistryUpdateResponder {
2343 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2344 tx_id: u32,
2345}
2346
2347impl std::ops::Drop for NetworkRegistryUpdateResponder {
2351 fn drop(&mut self) {
2352 self.control_handle.shutdown();
2353 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2355 }
2356}
2357
2358impl fidl::endpoints::Responder for NetworkRegistryUpdateResponder {
2359 type ControlHandle = NetworkRegistryControlHandle;
2360
2361 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2362 &self.control_handle
2363 }
2364
2365 fn drop_without_shutdown(mut self) {
2366 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2368 std::mem::forget(self);
2370 }
2371}
2372
2373impl NetworkRegistryUpdateResponder {
2374 pub fn send(
2378 self,
2379 mut result: Result<(), NetworkRegistryUpdateError>,
2380 ) -> Result<(), fidl::Error> {
2381 let _result = self.send_raw(result);
2382 if _result.is_err() {
2383 self.control_handle.shutdown();
2384 }
2385 self.drop_without_shutdown();
2386 _result
2387 }
2388
2389 pub fn send_no_shutdown_on_err(
2391 self,
2392 mut result: Result<(), NetworkRegistryUpdateError>,
2393 ) -> Result<(), fidl::Error> {
2394 let _result = self.send_raw(result);
2395 self.drop_without_shutdown();
2396 _result
2397 }
2398
2399 fn send_raw(
2400 &self,
2401 mut result: Result<(), NetworkRegistryUpdateError>,
2402 ) -> Result<(), fidl::Error> {
2403 self.control_handle.inner.send::<fidl::encoding::ResultType<
2404 fidl::encoding::EmptyStruct,
2405 NetworkRegistryUpdateError,
2406 >>(
2407 result,
2408 self.tx_id,
2409 0x3bc790ae5418ff0e,
2410 fidl::encoding::DynamicFlags::empty(),
2411 )
2412 }
2413}
2414
2415#[must_use = "FIDL methods require a response to be sent"]
2416#[derive(Debug)]
2417pub struct NetworkRegistryRemoveResponder {
2418 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
2419 tx_id: u32,
2420}
2421
2422impl std::ops::Drop for NetworkRegistryRemoveResponder {
2426 fn drop(&mut self) {
2427 self.control_handle.shutdown();
2428 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2430 }
2431}
2432
2433impl fidl::endpoints::Responder for NetworkRegistryRemoveResponder {
2434 type ControlHandle = NetworkRegistryControlHandle;
2435
2436 fn control_handle(&self) -> &NetworkRegistryControlHandle {
2437 &self.control_handle
2438 }
2439
2440 fn drop_without_shutdown(mut self) {
2441 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2443 std::mem::forget(self);
2445 }
2446}
2447
2448impl NetworkRegistryRemoveResponder {
2449 pub fn send(
2453 self,
2454 mut result: Result<(), NetworkRegistryRemoveError>,
2455 ) -> Result<(), fidl::Error> {
2456 let _result = self.send_raw(result);
2457 if _result.is_err() {
2458 self.control_handle.shutdown();
2459 }
2460 self.drop_without_shutdown();
2461 _result
2462 }
2463
2464 pub fn send_no_shutdown_on_err(
2466 self,
2467 mut result: Result<(), NetworkRegistryRemoveError>,
2468 ) -> Result<(), fidl::Error> {
2469 let _result = self.send_raw(result);
2470 self.drop_without_shutdown();
2471 _result
2472 }
2473
2474 fn send_raw(
2475 &self,
2476 mut result: Result<(), NetworkRegistryRemoveError>,
2477 ) -> Result<(), fidl::Error> {
2478 self.control_handle.inner.send::<fidl::encoding::ResultType<
2479 fidl::encoding::EmptyStruct,
2480 NetworkRegistryRemoveError,
2481 >>(
2482 result,
2483 self.tx_id,
2484 0x1302df41dca6379e,
2485 fidl::encoding::DynamicFlags::empty(),
2486 )
2487 }
2488}
2489
2490#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2491pub struct StarnixNetworksMarker;
2492
2493impl fidl::endpoints::ProtocolMarker for StarnixNetworksMarker {
2494 type Proxy = StarnixNetworksProxy;
2495 type RequestStream = StarnixNetworksRequestStream;
2496 #[cfg(target_os = "fuchsia")]
2497 type SynchronousProxy = StarnixNetworksSynchronousProxy;
2498
2499 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.StarnixNetworks";
2500}
2501impl fidl::endpoints::DiscoverableProtocolMarker for StarnixNetworksMarker {}
2502
2503pub trait StarnixNetworksProxyInterface: Send + Sync {
2504 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
2505 + Send;
2506 fn r#set_default(
2507 &self,
2508 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2509 ) -> Self::SetDefaultResponseFut;
2510 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
2511 + Send;
2512 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
2513 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
2514 + Send;
2515 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
2516 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
2517 + Send;
2518 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
2519}
2520#[derive(Debug)]
2521#[cfg(target_os = "fuchsia")]
2522pub struct StarnixNetworksSynchronousProxy {
2523 client: fidl::client::sync::Client,
2524}
2525
2526#[cfg(target_os = "fuchsia")]
2527impl fidl::endpoints::SynchronousProxy for StarnixNetworksSynchronousProxy {
2528 type Proxy = StarnixNetworksProxy;
2529 type Protocol = StarnixNetworksMarker;
2530
2531 fn from_channel(inner: fidl::Channel) -> Self {
2532 Self::new(inner)
2533 }
2534
2535 fn into_channel(self) -> fidl::Channel {
2536 self.client.into_channel()
2537 }
2538
2539 fn as_channel(&self) -> &fidl::Channel {
2540 self.client.as_channel()
2541 }
2542}
2543
2544#[cfg(target_os = "fuchsia")]
2545impl StarnixNetworksSynchronousProxy {
2546 pub fn new(channel: fidl::Channel) -> Self {
2547 let protocol_name = <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2548 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2549 }
2550
2551 pub fn into_channel(self) -> fidl::Channel {
2552 self.client.into_channel()
2553 }
2554
2555 pub fn wait_for_event(
2558 &self,
2559 deadline: zx::MonotonicInstant,
2560 ) -> Result<StarnixNetworksEvent, fidl::Error> {
2561 StarnixNetworksEvent::decode(self.client.wait_for_event(deadline)?)
2562 }
2563
2564 pub fn r#set_default(
2568 &self,
2569 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2570 ___deadline: zx::MonotonicInstant,
2571 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
2572 let _response =
2573 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
2574 fidl::encoding::EmptyStruct,
2575 NetworkRegistrySetDefaultError,
2576 >>(
2577 (network_id,),
2578 0x787930c67b8cf82c,
2579 fidl::encoding::DynamicFlags::empty(),
2580 ___deadline,
2581 )?;
2582 Ok(_response.map(|x| x))
2583 }
2584
2585 pub fn r#add(
2590 &self,
2591 mut network: &Network,
2592 ___deadline: zx::MonotonicInstant,
2593 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
2594 let _response =
2595 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
2596 fidl::encoding::EmptyStruct,
2597 NetworkRegistryAddError,
2598 >>(
2599 (network,),
2600 0x197e70a1cbeab3ad,
2601 fidl::encoding::DynamicFlags::empty(),
2602 ___deadline,
2603 )?;
2604 Ok(_response.map(|x| x))
2605 }
2606
2607 pub fn r#update(
2611 &self,
2612 mut network: &Network,
2613 ___deadline: zx::MonotonicInstant,
2614 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
2615 let _response =
2616 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
2617 fidl::encoding::EmptyStruct,
2618 NetworkRegistryUpdateError,
2619 >>(
2620 (network,),
2621 0x3bc790ae5418ff0e,
2622 fidl::encoding::DynamicFlags::empty(),
2623 ___deadline,
2624 )?;
2625 Ok(_response.map(|x| x))
2626 }
2627
2628 pub fn r#remove(
2632 &self,
2633 mut network_id: u32,
2634 ___deadline: zx::MonotonicInstant,
2635 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
2636 let _response =
2637 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
2638 fidl::encoding::EmptyStruct,
2639 NetworkRegistryRemoveError,
2640 >>(
2641 (network_id,),
2642 0x1302df41dca6379e,
2643 fidl::encoding::DynamicFlags::empty(),
2644 ___deadline,
2645 )?;
2646 Ok(_response.map(|x| x))
2647 }
2648}
2649
2650#[cfg(target_os = "fuchsia")]
2651impl From<StarnixNetworksSynchronousProxy> for zx::NullableHandle {
2652 fn from(value: StarnixNetworksSynchronousProxy) -> Self {
2653 value.into_channel().into()
2654 }
2655}
2656
2657#[cfg(target_os = "fuchsia")]
2658impl From<fidl::Channel> for StarnixNetworksSynchronousProxy {
2659 fn from(value: fidl::Channel) -> Self {
2660 Self::new(value)
2661 }
2662}
2663
2664#[cfg(target_os = "fuchsia")]
2665impl fidl::endpoints::FromClient for StarnixNetworksSynchronousProxy {
2666 type Protocol = StarnixNetworksMarker;
2667
2668 fn from_client(value: fidl::endpoints::ClientEnd<StarnixNetworksMarker>) -> Self {
2669 Self::new(value.into_channel())
2670 }
2671}
2672
2673#[derive(Debug, Clone)]
2674pub struct StarnixNetworksProxy {
2675 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2676}
2677
2678impl fidl::endpoints::Proxy for StarnixNetworksProxy {
2679 type Protocol = StarnixNetworksMarker;
2680
2681 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2682 Self::new(inner)
2683 }
2684
2685 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2686 self.client.into_channel().map_err(|client| Self { client })
2687 }
2688
2689 fn as_channel(&self) -> &::fidl::AsyncChannel {
2690 self.client.as_channel()
2691 }
2692}
2693
2694impl StarnixNetworksProxy {
2695 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2697 let protocol_name = <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2698 Self { client: fidl::client::Client::new(channel, protocol_name) }
2699 }
2700
2701 pub fn take_event_stream(&self) -> StarnixNetworksEventStream {
2707 StarnixNetworksEventStream { event_receiver: self.client.take_event_receiver() }
2708 }
2709
2710 pub fn r#set_default(
2714 &self,
2715 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2716 ) -> fidl::client::QueryResponseFut<
2717 NetworkRegistrySetDefaultResult,
2718 fidl::encoding::DefaultFuchsiaResourceDialect,
2719 > {
2720 StarnixNetworksProxyInterface::r#set_default(self, network_id)
2721 }
2722
2723 pub fn r#add(
2728 &self,
2729 mut network: &Network,
2730 ) -> fidl::client::QueryResponseFut<
2731 NetworkRegistryAddResult,
2732 fidl::encoding::DefaultFuchsiaResourceDialect,
2733 > {
2734 StarnixNetworksProxyInterface::r#add(self, network)
2735 }
2736
2737 pub fn r#update(
2741 &self,
2742 mut network: &Network,
2743 ) -> fidl::client::QueryResponseFut<
2744 NetworkRegistryUpdateResult,
2745 fidl::encoding::DefaultFuchsiaResourceDialect,
2746 > {
2747 StarnixNetworksProxyInterface::r#update(self, network)
2748 }
2749
2750 pub fn r#remove(
2754 &self,
2755 mut network_id: u32,
2756 ) -> fidl::client::QueryResponseFut<
2757 NetworkRegistryRemoveResult,
2758 fidl::encoding::DefaultFuchsiaResourceDialect,
2759 > {
2760 StarnixNetworksProxyInterface::r#remove(self, network_id)
2761 }
2762}
2763
2764impl StarnixNetworksProxyInterface for StarnixNetworksProxy {
2765 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
2766 NetworkRegistrySetDefaultResult,
2767 fidl::encoding::DefaultFuchsiaResourceDialect,
2768 >;
2769 fn r#set_default(
2770 &self,
2771 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
2772 ) -> Self::SetDefaultResponseFut {
2773 fn _decode(
2774 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2775 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
2776 let _response = fidl::client::decode_transaction_body::<
2777 fidl::encoding::ResultType<
2778 fidl::encoding::EmptyStruct,
2779 NetworkRegistrySetDefaultError,
2780 >,
2781 fidl::encoding::DefaultFuchsiaResourceDialect,
2782 0x787930c67b8cf82c,
2783 >(_buf?)?;
2784 Ok(_response.map(|x| x))
2785 }
2786 self.client.send_query_and_decode::<
2787 NetworkRegistrySetDefaultRequest,
2788 NetworkRegistrySetDefaultResult,
2789 >(
2790 (network_id,),
2791 0x787930c67b8cf82c,
2792 fidl::encoding::DynamicFlags::empty(),
2793 _decode,
2794 )
2795 }
2796
2797 type AddResponseFut = fidl::client::QueryResponseFut<
2798 NetworkRegistryAddResult,
2799 fidl::encoding::DefaultFuchsiaResourceDialect,
2800 >;
2801 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
2802 fn _decode(
2803 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2804 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
2805 let _response = fidl::client::decode_transaction_body::<
2806 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
2807 fidl::encoding::DefaultFuchsiaResourceDialect,
2808 0x197e70a1cbeab3ad,
2809 >(_buf?)?;
2810 Ok(_response.map(|x| x))
2811 }
2812 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
2813 (network,),
2814 0x197e70a1cbeab3ad,
2815 fidl::encoding::DynamicFlags::empty(),
2816 _decode,
2817 )
2818 }
2819
2820 type UpdateResponseFut = fidl::client::QueryResponseFut<
2821 NetworkRegistryUpdateResult,
2822 fidl::encoding::DefaultFuchsiaResourceDialect,
2823 >;
2824 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
2825 fn _decode(
2826 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2827 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
2828 let _response = fidl::client::decode_transaction_body::<
2829 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
2830 fidl::encoding::DefaultFuchsiaResourceDialect,
2831 0x3bc790ae5418ff0e,
2832 >(_buf?)?;
2833 Ok(_response.map(|x| x))
2834 }
2835 self.client
2836 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
2837 (network,),
2838 0x3bc790ae5418ff0e,
2839 fidl::encoding::DynamicFlags::empty(),
2840 _decode,
2841 )
2842 }
2843
2844 type RemoveResponseFut = fidl::client::QueryResponseFut<
2845 NetworkRegistryRemoveResult,
2846 fidl::encoding::DefaultFuchsiaResourceDialect,
2847 >;
2848 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
2849 fn _decode(
2850 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2851 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
2852 let _response = fidl::client::decode_transaction_body::<
2853 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
2854 fidl::encoding::DefaultFuchsiaResourceDialect,
2855 0x1302df41dca6379e,
2856 >(_buf?)?;
2857 Ok(_response.map(|x| x))
2858 }
2859 self.client
2860 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
2861 (network_id,),
2862 0x1302df41dca6379e,
2863 fidl::encoding::DynamicFlags::empty(),
2864 _decode,
2865 )
2866 }
2867}
2868
2869pub struct StarnixNetworksEventStream {
2870 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2871}
2872
2873impl std::marker::Unpin for StarnixNetworksEventStream {}
2874
2875impl futures::stream::FusedStream for StarnixNetworksEventStream {
2876 fn is_terminated(&self) -> bool {
2877 self.event_receiver.is_terminated()
2878 }
2879}
2880
2881impl futures::Stream for StarnixNetworksEventStream {
2882 type Item = Result<StarnixNetworksEvent, fidl::Error>;
2883
2884 fn poll_next(
2885 mut self: std::pin::Pin<&mut Self>,
2886 cx: &mut std::task::Context<'_>,
2887 ) -> std::task::Poll<Option<Self::Item>> {
2888 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2889 &mut self.event_receiver,
2890 cx
2891 )?) {
2892 Some(buf) => std::task::Poll::Ready(Some(StarnixNetworksEvent::decode(buf))),
2893 None => std::task::Poll::Ready(None),
2894 }
2895 }
2896}
2897
2898#[derive(Debug)]
2899pub enum StarnixNetworksEvent {}
2900
2901impl StarnixNetworksEvent {
2902 fn decode(
2904 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2905 ) -> Result<StarnixNetworksEvent, fidl::Error> {
2906 let (bytes, _handles) = buf.split_mut();
2907 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2908 debug_assert_eq!(tx_header.tx_id, 0);
2909 match tx_header.ordinal {
2910 _ => Err(fidl::Error::UnknownOrdinal {
2911 ordinal: tx_header.ordinal,
2912 protocol_name:
2913 <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2914 }),
2915 }
2916 }
2917}
2918
2919pub struct StarnixNetworksRequestStream {
2921 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2922 is_terminated: bool,
2923}
2924
2925impl std::marker::Unpin for StarnixNetworksRequestStream {}
2926
2927impl futures::stream::FusedStream for StarnixNetworksRequestStream {
2928 fn is_terminated(&self) -> bool {
2929 self.is_terminated
2930 }
2931}
2932
2933impl fidl::endpoints::RequestStream for StarnixNetworksRequestStream {
2934 type Protocol = StarnixNetworksMarker;
2935 type ControlHandle = StarnixNetworksControlHandle;
2936
2937 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2938 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2939 }
2940
2941 fn control_handle(&self) -> Self::ControlHandle {
2942 StarnixNetworksControlHandle { inner: self.inner.clone() }
2943 }
2944
2945 fn into_inner(
2946 self,
2947 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2948 {
2949 (self.inner, self.is_terminated)
2950 }
2951
2952 fn from_inner(
2953 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2954 is_terminated: bool,
2955 ) -> Self {
2956 Self { inner, is_terminated }
2957 }
2958}
2959
2960impl futures::Stream for StarnixNetworksRequestStream {
2961 type Item = Result<StarnixNetworksRequest, fidl::Error>;
2962
2963 fn poll_next(
2964 mut self: std::pin::Pin<&mut Self>,
2965 cx: &mut std::task::Context<'_>,
2966 ) -> std::task::Poll<Option<Self::Item>> {
2967 let this = &mut *self;
2968 if this.inner.check_shutdown(cx) {
2969 this.is_terminated = true;
2970 return std::task::Poll::Ready(None);
2971 }
2972 if this.is_terminated {
2973 panic!("polled StarnixNetworksRequestStream after completion");
2974 }
2975 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2976 |bytes, handles| {
2977 match this.inner.channel().read_etc(cx, bytes, handles) {
2978 std::task::Poll::Ready(Ok(())) => {}
2979 std::task::Poll::Pending => return std::task::Poll::Pending,
2980 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2981 this.is_terminated = true;
2982 return std::task::Poll::Ready(None);
2983 }
2984 std::task::Poll::Ready(Err(e)) => {
2985 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2986 e.into(),
2987 ))));
2988 }
2989 }
2990
2991 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2993
2994 std::task::Poll::Ready(Some(match header.ordinal {
2995 0x787930c67b8cf82c => {
2996 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2997 let mut req = fidl::new_empty!(
2998 NetworkRegistrySetDefaultRequest,
2999 fidl::encoding::DefaultFuchsiaResourceDialect
3000 );
3001 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
3002 let control_handle =
3003 StarnixNetworksControlHandle { inner: this.inner.clone() };
3004 Ok(StarnixNetworksRequest::SetDefault {
3005 network_id: req.network_id,
3006
3007 responder: StarnixNetworksSetDefaultResponder {
3008 control_handle: std::mem::ManuallyDrop::new(control_handle),
3009 tx_id: header.tx_id,
3010 },
3011 })
3012 }
3013 0x197e70a1cbeab3ad => {
3014 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3015 let mut req = fidl::new_empty!(
3016 NetworkRegistryAddRequest,
3017 fidl::encoding::DefaultFuchsiaResourceDialect
3018 );
3019 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
3020 let control_handle =
3021 StarnixNetworksControlHandle { inner: this.inner.clone() };
3022 Ok(StarnixNetworksRequest::Add {
3023 network: req.network,
3024
3025 responder: StarnixNetworksAddResponder {
3026 control_handle: std::mem::ManuallyDrop::new(control_handle),
3027 tx_id: header.tx_id,
3028 },
3029 })
3030 }
3031 0x3bc790ae5418ff0e => {
3032 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3033 let mut req = fidl::new_empty!(
3034 NetworkRegistryUpdateRequest,
3035 fidl::encoding::DefaultFuchsiaResourceDialect
3036 );
3037 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
3038 let control_handle =
3039 StarnixNetworksControlHandle { inner: this.inner.clone() };
3040 Ok(StarnixNetworksRequest::Update {
3041 network: req.network,
3042
3043 responder: StarnixNetworksUpdateResponder {
3044 control_handle: std::mem::ManuallyDrop::new(control_handle),
3045 tx_id: header.tx_id,
3046 },
3047 })
3048 }
3049 0x1302df41dca6379e => {
3050 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3051 let mut req = fidl::new_empty!(
3052 NetworkRegistryRemoveRequest,
3053 fidl::encoding::DefaultFuchsiaResourceDialect
3054 );
3055 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
3056 let control_handle =
3057 StarnixNetworksControlHandle { inner: this.inner.clone() };
3058 Ok(StarnixNetworksRequest::Remove {
3059 network_id: req.network_id,
3060
3061 responder: StarnixNetworksRemoveResponder {
3062 control_handle: std::mem::ManuallyDrop::new(control_handle),
3063 tx_id: header.tx_id,
3064 },
3065 })
3066 }
3067 _ => Err(fidl::Error::UnknownOrdinal {
3068 ordinal: header.ordinal,
3069 protocol_name:
3070 <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3071 }),
3072 }))
3073 },
3074 )
3075 }
3076}
3077
3078#[derive(Debug)]
3083pub enum StarnixNetworksRequest {
3084 SetDefault {
3088 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
3089 responder: StarnixNetworksSetDefaultResponder,
3090 },
3091 Add { network: Network, responder: StarnixNetworksAddResponder },
3096 Update { network: Network, responder: StarnixNetworksUpdateResponder },
3100 Remove { network_id: u32, responder: StarnixNetworksRemoveResponder },
3104}
3105
3106impl StarnixNetworksRequest {
3107 #[allow(irrefutable_let_patterns)]
3108 pub fn into_set_default(
3109 self,
3110 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, StarnixNetworksSetDefaultResponder)>
3111 {
3112 if let StarnixNetworksRequest::SetDefault { network_id, responder } = self {
3113 Some((network_id, responder))
3114 } else {
3115 None
3116 }
3117 }
3118
3119 #[allow(irrefutable_let_patterns)]
3120 pub fn into_add(self) -> Option<(Network, StarnixNetworksAddResponder)> {
3121 if let StarnixNetworksRequest::Add { network, responder } = self {
3122 Some((network, responder))
3123 } else {
3124 None
3125 }
3126 }
3127
3128 #[allow(irrefutable_let_patterns)]
3129 pub fn into_update(self) -> Option<(Network, StarnixNetworksUpdateResponder)> {
3130 if let StarnixNetworksRequest::Update { network, responder } = self {
3131 Some((network, responder))
3132 } else {
3133 None
3134 }
3135 }
3136
3137 #[allow(irrefutable_let_patterns)]
3138 pub fn into_remove(self) -> Option<(u32, StarnixNetworksRemoveResponder)> {
3139 if let StarnixNetworksRequest::Remove { network_id, responder } = self {
3140 Some((network_id, responder))
3141 } else {
3142 None
3143 }
3144 }
3145
3146 pub fn method_name(&self) -> &'static str {
3148 match *self {
3149 StarnixNetworksRequest::SetDefault { .. } => "set_default",
3150 StarnixNetworksRequest::Add { .. } => "add",
3151 StarnixNetworksRequest::Update { .. } => "update",
3152 StarnixNetworksRequest::Remove { .. } => "remove",
3153 }
3154 }
3155}
3156
3157#[derive(Debug, Clone)]
3158pub struct StarnixNetworksControlHandle {
3159 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3160}
3161
3162impl fidl::endpoints::ControlHandle for StarnixNetworksControlHandle {
3163 fn shutdown(&self) {
3164 self.inner.shutdown()
3165 }
3166
3167 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
3168 self.inner.shutdown_with_epitaph(status)
3169 }
3170
3171 fn is_closed(&self) -> bool {
3172 self.inner.channel().is_closed()
3173 }
3174 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3175 self.inner.channel().on_closed()
3176 }
3177
3178 #[cfg(target_os = "fuchsia")]
3179 fn signal_peer(
3180 &self,
3181 clear_mask: zx::Signals,
3182 set_mask: zx::Signals,
3183 ) -> Result<(), zx_status::Status> {
3184 use fidl::Peered;
3185 self.inner.channel().signal_peer(clear_mask, set_mask)
3186 }
3187}
3188
3189impl StarnixNetworksControlHandle {}
3190
3191#[must_use = "FIDL methods require a response to be sent"]
3192#[derive(Debug)]
3193pub struct StarnixNetworksSetDefaultResponder {
3194 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3195 tx_id: u32,
3196}
3197
3198impl std::ops::Drop for StarnixNetworksSetDefaultResponder {
3202 fn drop(&mut self) {
3203 self.control_handle.shutdown();
3204 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3206 }
3207}
3208
3209impl fidl::endpoints::Responder for StarnixNetworksSetDefaultResponder {
3210 type ControlHandle = StarnixNetworksControlHandle;
3211
3212 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3213 &self.control_handle
3214 }
3215
3216 fn drop_without_shutdown(mut self) {
3217 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3219 std::mem::forget(self);
3221 }
3222}
3223
3224impl StarnixNetworksSetDefaultResponder {
3225 pub fn send(
3229 self,
3230 mut result: Result<(), NetworkRegistrySetDefaultError>,
3231 ) -> Result<(), fidl::Error> {
3232 let _result = self.send_raw(result);
3233 if _result.is_err() {
3234 self.control_handle.shutdown();
3235 }
3236 self.drop_without_shutdown();
3237 _result
3238 }
3239
3240 pub fn send_no_shutdown_on_err(
3242 self,
3243 mut result: Result<(), NetworkRegistrySetDefaultError>,
3244 ) -> Result<(), fidl::Error> {
3245 let _result = self.send_raw(result);
3246 self.drop_without_shutdown();
3247 _result
3248 }
3249
3250 fn send_raw(
3251 &self,
3252 mut result: Result<(), NetworkRegistrySetDefaultError>,
3253 ) -> Result<(), fidl::Error> {
3254 self.control_handle.inner.send::<fidl::encoding::ResultType<
3255 fidl::encoding::EmptyStruct,
3256 NetworkRegistrySetDefaultError,
3257 >>(
3258 result,
3259 self.tx_id,
3260 0x787930c67b8cf82c,
3261 fidl::encoding::DynamicFlags::empty(),
3262 )
3263 }
3264}
3265
3266#[must_use = "FIDL methods require a response to be sent"]
3267#[derive(Debug)]
3268pub struct StarnixNetworksAddResponder {
3269 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3270 tx_id: u32,
3271}
3272
3273impl std::ops::Drop for StarnixNetworksAddResponder {
3277 fn drop(&mut self) {
3278 self.control_handle.shutdown();
3279 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3281 }
3282}
3283
3284impl fidl::endpoints::Responder for StarnixNetworksAddResponder {
3285 type ControlHandle = StarnixNetworksControlHandle;
3286
3287 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3288 &self.control_handle
3289 }
3290
3291 fn drop_without_shutdown(mut self) {
3292 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3294 std::mem::forget(self);
3296 }
3297}
3298
3299impl StarnixNetworksAddResponder {
3300 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
3304 let _result = self.send_raw(result);
3305 if _result.is_err() {
3306 self.control_handle.shutdown();
3307 }
3308 self.drop_without_shutdown();
3309 _result
3310 }
3311
3312 pub fn send_no_shutdown_on_err(
3314 self,
3315 mut result: Result<(), NetworkRegistryAddError>,
3316 ) -> Result<(), fidl::Error> {
3317 let _result = self.send_raw(result);
3318 self.drop_without_shutdown();
3319 _result
3320 }
3321
3322 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
3323 self.control_handle.inner.send::<fidl::encoding::ResultType<
3324 fidl::encoding::EmptyStruct,
3325 NetworkRegistryAddError,
3326 >>(
3327 result,
3328 self.tx_id,
3329 0x197e70a1cbeab3ad,
3330 fidl::encoding::DynamicFlags::empty(),
3331 )
3332 }
3333}
3334
3335#[must_use = "FIDL methods require a response to be sent"]
3336#[derive(Debug)]
3337pub struct StarnixNetworksUpdateResponder {
3338 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3339 tx_id: u32,
3340}
3341
3342impl std::ops::Drop for StarnixNetworksUpdateResponder {
3346 fn drop(&mut self) {
3347 self.control_handle.shutdown();
3348 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3350 }
3351}
3352
3353impl fidl::endpoints::Responder for StarnixNetworksUpdateResponder {
3354 type ControlHandle = StarnixNetworksControlHandle;
3355
3356 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3357 &self.control_handle
3358 }
3359
3360 fn drop_without_shutdown(mut self) {
3361 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3363 std::mem::forget(self);
3365 }
3366}
3367
3368impl StarnixNetworksUpdateResponder {
3369 pub fn send(
3373 self,
3374 mut result: Result<(), NetworkRegistryUpdateError>,
3375 ) -> Result<(), fidl::Error> {
3376 let _result = self.send_raw(result);
3377 if _result.is_err() {
3378 self.control_handle.shutdown();
3379 }
3380 self.drop_without_shutdown();
3381 _result
3382 }
3383
3384 pub fn send_no_shutdown_on_err(
3386 self,
3387 mut result: Result<(), NetworkRegistryUpdateError>,
3388 ) -> Result<(), fidl::Error> {
3389 let _result = self.send_raw(result);
3390 self.drop_without_shutdown();
3391 _result
3392 }
3393
3394 fn send_raw(
3395 &self,
3396 mut result: Result<(), NetworkRegistryUpdateError>,
3397 ) -> Result<(), fidl::Error> {
3398 self.control_handle.inner.send::<fidl::encoding::ResultType<
3399 fidl::encoding::EmptyStruct,
3400 NetworkRegistryUpdateError,
3401 >>(
3402 result,
3403 self.tx_id,
3404 0x3bc790ae5418ff0e,
3405 fidl::encoding::DynamicFlags::empty(),
3406 )
3407 }
3408}
3409
3410#[must_use = "FIDL methods require a response to be sent"]
3411#[derive(Debug)]
3412pub struct StarnixNetworksRemoveResponder {
3413 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
3414 tx_id: u32,
3415}
3416
3417impl std::ops::Drop for StarnixNetworksRemoveResponder {
3421 fn drop(&mut self) {
3422 self.control_handle.shutdown();
3423 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3425 }
3426}
3427
3428impl fidl::endpoints::Responder for StarnixNetworksRemoveResponder {
3429 type ControlHandle = StarnixNetworksControlHandle;
3430
3431 fn control_handle(&self) -> &StarnixNetworksControlHandle {
3432 &self.control_handle
3433 }
3434
3435 fn drop_without_shutdown(mut self) {
3436 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3438 std::mem::forget(self);
3440 }
3441}
3442
3443impl StarnixNetworksRemoveResponder {
3444 pub fn send(
3448 self,
3449 mut result: Result<(), NetworkRegistryRemoveError>,
3450 ) -> Result<(), fidl::Error> {
3451 let _result = self.send_raw(result);
3452 if _result.is_err() {
3453 self.control_handle.shutdown();
3454 }
3455 self.drop_without_shutdown();
3456 _result
3457 }
3458
3459 pub fn send_no_shutdown_on_err(
3461 self,
3462 mut result: Result<(), NetworkRegistryRemoveError>,
3463 ) -> Result<(), fidl::Error> {
3464 let _result = self.send_raw(result);
3465 self.drop_without_shutdown();
3466 _result
3467 }
3468
3469 fn send_raw(
3470 &self,
3471 mut result: Result<(), NetworkRegistryRemoveError>,
3472 ) -> Result<(), fidl::Error> {
3473 self.control_handle.inner.send::<fidl::encoding::ResultType<
3474 fidl::encoding::EmptyStruct,
3475 NetworkRegistryRemoveError,
3476 >>(
3477 result,
3478 self.tx_id,
3479 0x1302df41dca6379e,
3480 fidl::encoding::DynamicFlags::empty(),
3481 )
3482 }
3483}
3484
3485mod internal {
3486 use super::*;
3487}