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 NetworkRegistryMarker;
16
17impl fidl::endpoints::ProtocolMarker for NetworkRegistryMarker {
18 type Proxy = NetworkRegistryProxy;
19 type RequestStream = NetworkRegistryRequestStream;
20 #[cfg(target_os = "fuchsia")]
21 type SynchronousProxy = NetworkRegistrySynchronousProxy;
22
23 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.NetworkRegistry";
24}
25impl fidl::endpoints::DiscoverableProtocolMarker for NetworkRegistryMarker {}
26pub type NetworkRegistrySetDefaultResult = Result<(), NetworkRegistrySetDefaultError>;
27pub type NetworkRegistryAddResult = Result<(), NetworkRegistryAddError>;
28pub type NetworkRegistryUpdateResult = Result<(), NetworkRegistryUpdateError>;
29pub type NetworkRegistryRemoveResult = Result<(), NetworkRegistryRemoveError>;
30
31pub trait NetworkRegistryProxyInterface: Send + Sync {
32 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
33 + Send;
34 fn r#set_default(
35 &self,
36 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
37 ) -> Self::SetDefaultResponseFut;
38 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
39 + Send;
40 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
41 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
42 + Send;
43 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
44 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
45 + Send;
46 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
47}
48#[derive(Debug)]
49#[cfg(target_os = "fuchsia")]
50pub struct NetworkRegistrySynchronousProxy {
51 client: fidl::client::sync::Client,
52}
53
54#[cfg(target_os = "fuchsia")]
55impl fidl::endpoints::SynchronousProxy for NetworkRegistrySynchronousProxy {
56 type Proxy = NetworkRegistryProxy;
57 type Protocol = NetworkRegistryMarker;
58
59 fn from_channel(inner: fidl::Channel) -> Self {
60 Self::new(inner)
61 }
62
63 fn into_channel(self) -> fidl::Channel {
64 self.client.into_channel()
65 }
66
67 fn as_channel(&self) -> &fidl::Channel {
68 self.client.as_channel()
69 }
70}
71
72#[cfg(target_os = "fuchsia")]
73impl NetworkRegistrySynchronousProxy {
74 pub fn new(channel: fidl::Channel) -> Self {
75 Self { client: fidl::client::sync::Client::new(channel) }
76 }
77
78 pub fn into_channel(self) -> fidl::Channel {
79 self.client.into_channel()
80 }
81
82 pub fn wait_for_event(
85 &self,
86 deadline: zx::MonotonicInstant,
87 ) -> Result<NetworkRegistryEvent, fidl::Error> {
88 NetworkRegistryEvent::decode(self.client.wait_for_event::<NetworkRegistryMarker>(deadline)?)
89 }
90
91 pub fn r#set_default(
95 &self,
96 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
97 ___deadline: zx::MonotonicInstant,
98 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
99 let _response =
100 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
101 fidl::encoding::EmptyStruct,
102 NetworkRegistrySetDefaultError,
103 >, NetworkRegistryMarker>(
104 (network_id,),
105 0x787930c67b8cf82c,
106 fidl::encoding::DynamicFlags::empty(),
107 ___deadline,
108 )?;
109 Ok(_response.map(|x| x))
110 }
111
112 pub fn r#add(
117 &self,
118 mut network: &Network,
119 ___deadline: zx::MonotonicInstant,
120 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
121 let _response =
122 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
123 fidl::encoding::EmptyStruct,
124 NetworkRegistryAddError,
125 >, NetworkRegistryMarker>(
126 (network,),
127 0x197e70a1cbeab3ad,
128 fidl::encoding::DynamicFlags::empty(),
129 ___deadline,
130 )?;
131 Ok(_response.map(|x| x))
132 }
133
134 pub fn r#update(
139 &self,
140 mut network: &Network,
141 ___deadline: zx::MonotonicInstant,
142 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
143 let _response =
144 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
145 fidl::encoding::EmptyStruct,
146 NetworkRegistryUpdateError,
147 >, NetworkRegistryMarker>(
148 (network,),
149 0x3bc790ae5418ff0e,
150 fidl::encoding::DynamicFlags::empty(),
151 ___deadline,
152 )?;
153 Ok(_response.map(|x| x))
154 }
155
156 pub fn r#remove(
161 &self,
162 mut network_id: u32,
163 ___deadline: zx::MonotonicInstant,
164 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
165 let _response =
166 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
167 fidl::encoding::EmptyStruct,
168 NetworkRegistryRemoveError,
169 >, NetworkRegistryMarker>(
170 (network_id,),
171 0x1302df41dca6379e,
172 fidl::encoding::DynamicFlags::empty(),
173 ___deadline,
174 )?;
175 Ok(_response.map(|x| x))
176 }
177}
178
179#[cfg(target_os = "fuchsia")]
180impl From<NetworkRegistrySynchronousProxy> for zx::NullableHandle {
181 fn from(value: NetworkRegistrySynchronousProxy) -> Self {
182 value.into_channel().into()
183 }
184}
185
186#[cfg(target_os = "fuchsia")]
187impl From<fidl::Channel> for NetworkRegistrySynchronousProxy {
188 fn from(value: fidl::Channel) -> Self {
189 Self::new(value)
190 }
191}
192
193#[cfg(target_os = "fuchsia")]
194impl fidl::endpoints::FromClient for NetworkRegistrySynchronousProxy {
195 type Protocol = NetworkRegistryMarker;
196
197 fn from_client(value: fidl::endpoints::ClientEnd<NetworkRegistryMarker>) -> Self {
198 Self::new(value.into_channel())
199 }
200}
201
202#[derive(Debug, Clone)]
203pub struct NetworkRegistryProxy {
204 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
205}
206
207impl fidl::endpoints::Proxy for NetworkRegistryProxy {
208 type Protocol = NetworkRegistryMarker;
209
210 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
211 Self::new(inner)
212 }
213
214 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
215 self.client.into_channel().map_err(|client| Self { client })
216 }
217
218 fn as_channel(&self) -> &::fidl::AsyncChannel {
219 self.client.as_channel()
220 }
221}
222
223impl NetworkRegistryProxy {
224 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
226 let protocol_name = <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
227 Self { client: fidl::client::Client::new(channel, protocol_name) }
228 }
229
230 pub fn take_event_stream(&self) -> NetworkRegistryEventStream {
236 NetworkRegistryEventStream { event_receiver: self.client.take_event_receiver() }
237 }
238
239 pub fn r#set_default(
243 &self,
244 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
245 ) -> fidl::client::QueryResponseFut<
246 NetworkRegistrySetDefaultResult,
247 fidl::encoding::DefaultFuchsiaResourceDialect,
248 > {
249 NetworkRegistryProxyInterface::r#set_default(self, network_id)
250 }
251
252 pub fn r#add(
257 &self,
258 mut network: &Network,
259 ) -> fidl::client::QueryResponseFut<
260 NetworkRegistryAddResult,
261 fidl::encoding::DefaultFuchsiaResourceDialect,
262 > {
263 NetworkRegistryProxyInterface::r#add(self, network)
264 }
265
266 pub fn r#update(
271 &self,
272 mut network: &Network,
273 ) -> fidl::client::QueryResponseFut<
274 NetworkRegistryUpdateResult,
275 fidl::encoding::DefaultFuchsiaResourceDialect,
276 > {
277 NetworkRegistryProxyInterface::r#update(self, network)
278 }
279
280 pub fn r#remove(
285 &self,
286 mut network_id: u32,
287 ) -> fidl::client::QueryResponseFut<
288 NetworkRegistryRemoveResult,
289 fidl::encoding::DefaultFuchsiaResourceDialect,
290 > {
291 NetworkRegistryProxyInterface::r#remove(self, network_id)
292 }
293}
294
295impl NetworkRegistryProxyInterface for NetworkRegistryProxy {
296 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
297 NetworkRegistrySetDefaultResult,
298 fidl::encoding::DefaultFuchsiaResourceDialect,
299 >;
300 fn r#set_default(
301 &self,
302 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
303 ) -> Self::SetDefaultResponseFut {
304 fn _decode(
305 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
306 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
307 let _response = fidl::client::decode_transaction_body::<
308 fidl::encoding::ResultType<
309 fidl::encoding::EmptyStruct,
310 NetworkRegistrySetDefaultError,
311 >,
312 fidl::encoding::DefaultFuchsiaResourceDialect,
313 0x787930c67b8cf82c,
314 >(_buf?)?;
315 Ok(_response.map(|x| x))
316 }
317 self.client.send_query_and_decode::<
318 NetworkRegistrySetDefaultRequest,
319 NetworkRegistrySetDefaultResult,
320 >(
321 (network_id,),
322 0x787930c67b8cf82c,
323 fidl::encoding::DynamicFlags::empty(),
324 _decode,
325 )
326 }
327
328 type AddResponseFut = fidl::client::QueryResponseFut<
329 NetworkRegistryAddResult,
330 fidl::encoding::DefaultFuchsiaResourceDialect,
331 >;
332 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
333 fn _decode(
334 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
335 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
336 let _response = fidl::client::decode_transaction_body::<
337 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
338 fidl::encoding::DefaultFuchsiaResourceDialect,
339 0x197e70a1cbeab3ad,
340 >(_buf?)?;
341 Ok(_response.map(|x| x))
342 }
343 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
344 (network,),
345 0x197e70a1cbeab3ad,
346 fidl::encoding::DynamicFlags::empty(),
347 _decode,
348 )
349 }
350
351 type UpdateResponseFut = fidl::client::QueryResponseFut<
352 NetworkRegistryUpdateResult,
353 fidl::encoding::DefaultFuchsiaResourceDialect,
354 >;
355 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
356 fn _decode(
357 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
358 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
359 let _response = fidl::client::decode_transaction_body::<
360 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
361 fidl::encoding::DefaultFuchsiaResourceDialect,
362 0x3bc790ae5418ff0e,
363 >(_buf?)?;
364 Ok(_response.map(|x| x))
365 }
366 self.client
367 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
368 (network,),
369 0x3bc790ae5418ff0e,
370 fidl::encoding::DynamicFlags::empty(),
371 _decode,
372 )
373 }
374
375 type RemoveResponseFut = fidl::client::QueryResponseFut<
376 NetworkRegistryRemoveResult,
377 fidl::encoding::DefaultFuchsiaResourceDialect,
378 >;
379 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
380 fn _decode(
381 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
382 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
383 let _response = fidl::client::decode_transaction_body::<
384 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
385 fidl::encoding::DefaultFuchsiaResourceDialect,
386 0x1302df41dca6379e,
387 >(_buf?)?;
388 Ok(_response.map(|x| x))
389 }
390 self.client
391 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
392 (network_id,),
393 0x1302df41dca6379e,
394 fidl::encoding::DynamicFlags::empty(),
395 _decode,
396 )
397 }
398}
399
400pub struct NetworkRegistryEventStream {
401 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
402}
403
404impl std::marker::Unpin for NetworkRegistryEventStream {}
405
406impl futures::stream::FusedStream for NetworkRegistryEventStream {
407 fn is_terminated(&self) -> bool {
408 self.event_receiver.is_terminated()
409 }
410}
411
412impl futures::Stream for NetworkRegistryEventStream {
413 type Item = Result<NetworkRegistryEvent, fidl::Error>;
414
415 fn poll_next(
416 mut self: std::pin::Pin<&mut Self>,
417 cx: &mut std::task::Context<'_>,
418 ) -> std::task::Poll<Option<Self::Item>> {
419 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
420 &mut self.event_receiver,
421 cx
422 )?) {
423 Some(buf) => std::task::Poll::Ready(Some(NetworkRegistryEvent::decode(buf))),
424 None => std::task::Poll::Ready(None),
425 }
426 }
427}
428
429#[derive(Debug)]
430pub enum NetworkRegistryEvent {}
431
432impl NetworkRegistryEvent {
433 fn decode(
435 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
436 ) -> Result<NetworkRegistryEvent, fidl::Error> {
437 let (bytes, _handles) = buf.split_mut();
438 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
439 debug_assert_eq!(tx_header.tx_id, 0);
440 match tx_header.ordinal {
441 _ => Err(fidl::Error::UnknownOrdinal {
442 ordinal: tx_header.ordinal,
443 protocol_name:
444 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
445 }),
446 }
447 }
448}
449
450pub struct NetworkRegistryRequestStream {
452 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
453 is_terminated: bool,
454}
455
456impl std::marker::Unpin for NetworkRegistryRequestStream {}
457
458impl futures::stream::FusedStream for NetworkRegistryRequestStream {
459 fn is_terminated(&self) -> bool {
460 self.is_terminated
461 }
462}
463
464impl fidl::endpoints::RequestStream for NetworkRegistryRequestStream {
465 type Protocol = NetworkRegistryMarker;
466 type ControlHandle = NetworkRegistryControlHandle;
467
468 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
469 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
470 }
471
472 fn control_handle(&self) -> Self::ControlHandle {
473 NetworkRegistryControlHandle { inner: self.inner.clone() }
474 }
475
476 fn into_inner(
477 self,
478 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
479 {
480 (self.inner, self.is_terminated)
481 }
482
483 fn from_inner(
484 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
485 is_terminated: bool,
486 ) -> Self {
487 Self { inner, is_terminated }
488 }
489}
490
491impl futures::Stream for NetworkRegistryRequestStream {
492 type Item = Result<NetworkRegistryRequest, fidl::Error>;
493
494 fn poll_next(
495 mut self: std::pin::Pin<&mut Self>,
496 cx: &mut std::task::Context<'_>,
497 ) -> std::task::Poll<Option<Self::Item>> {
498 let this = &mut *self;
499 if this.inner.check_shutdown(cx) {
500 this.is_terminated = true;
501 return std::task::Poll::Ready(None);
502 }
503 if this.is_terminated {
504 panic!("polled NetworkRegistryRequestStream after completion");
505 }
506 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
507 |bytes, handles| {
508 match this.inner.channel().read_etc(cx, bytes, handles) {
509 std::task::Poll::Ready(Ok(())) => {}
510 std::task::Poll::Pending => return std::task::Poll::Pending,
511 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
512 this.is_terminated = true;
513 return std::task::Poll::Ready(None);
514 }
515 std::task::Poll::Ready(Err(e)) => {
516 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
517 e.into(),
518 ))));
519 }
520 }
521
522 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
524
525 std::task::Poll::Ready(Some(match header.ordinal {
526 0x787930c67b8cf82c => {
527 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
528 let mut req = fidl::new_empty!(
529 NetworkRegistrySetDefaultRequest,
530 fidl::encoding::DefaultFuchsiaResourceDialect
531 );
532 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
533 let control_handle =
534 NetworkRegistryControlHandle { inner: this.inner.clone() };
535 Ok(NetworkRegistryRequest::SetDefault {
536 network_id: req.network_id,
537
538 responder: NetworkRegistrySetDefaultResponder {
539 control_handle: std::mem::ManuallyDrop::new(control_handle),
540 tx_id: header.tx_id,
541 },
542 })
543 }
544 0x197e70a1cbeab3ad => {
545 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
546 let mut req = fidl::new_empty!(
547 NetworkRegistryAddRequest,
548 fidl::encoding::DefaultFuchsiaResourceDialect
549 );
550 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
551 let control_handle =
552 NetworkRegistryControlHandle { inner: this.inner.clone() };
553 Ok(NetworkRegistryRequest::Add {
554 network: req.network,
555
556 responder: NetworkRegistryAddResponder {
557 control_handle: std::mem::ManuallyDrop::new(control_handle),
558 tx_id: header.tx_id,
559 },
560 })
561 }
562 0x3bc790ae5418ff0e => {
563 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
564 let mut req = fidl::new_empty!(
565 NetworkRegistryUpdateRequest,
566 fidl::encoding::DefaultFuchsiaResourceDialect
567 );
568 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
569 let control_handle =
570 NetworkRegistryControlHandle { inner: this.inner.clone() };
571 Ok(NetworkRegistryRequest::Update {
572 network: req.network,
573
574 responder: NetworkRegistryUpdateResponder {
575 control_handle: std::mem::ManuallyDrop::new(control_handle),
576 tx_id: header.tx_id,
577 },
578 })
579 }
580 0x1302df41dca6379e => {
581 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
582 let mut req = fidl::new_empty!(
583 NetworkRegistryRemoveRequest,
584 fidl::encoding::DefaultFuchsiaResourceDialect
585 );
586 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
587 let control_handle =
588 NetworkRegistryControlHandle { inner: this.inner.clone() };
589 Ok(NetworkRegistryRequest::Remove {
590 network_id: req.network_id,
591
592 responder: NetworkRegistryRemoveResponder {
593 control_handle: std::mem::ManuallyDrop::new(control_handle),
594 tx_id: header.tx_id,
595 },
596 })
597 }
598 _ => Err(fidl::Error::UnknownOrdinal {
599 ordinal: header.ordinal,
600 protocol_name:
601 <NetworkRegistryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
602 }),
603 }))
604 },
605 )
606 }
607}
608
609#[derive(Debug)]
610pub enum NetworkRegistryRequest {
611 SetDefault {
615 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
616 responder: NetworkRegistrySetDefaultResponder,
617 },
618 Add { network: Network, responder: NetworkRegistryAddResponder },
623 Update { network: Network, responder: NetworkRegistryUpdateResponder },
628 Remove { network_id: u32, responder: NetworkRegistryRemoveResponder },
633}
634
635impl NetworkRegistryRequest {
636 #[allow(irrefutable_let_patterns)]
637 pub fn into_set_default(
638 self,
639 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, NetworkRegistrySetDefaultResponder)>
640 {
641 if let NetworkRegistryRequest::SetDefault { network_id, responder } = self {
642 Some((network_id, responder))
643 } else {
644 None
645 }
646 }
647
648 #[allow(irrefutable_let_patterns)]
649 pub fn into_add(self) -> Option<(Network, NetworkRegistryAddResponder)> {
650 if let NetworkRegistryRequest::Add { network, responder } = self {
651 Some((network, responder))
652 } else {
653 None
654 }
655 }
656
657 #[allow(irrefutable_let_patterns)]
658 pub fn into_update(self) -> Option<(Network, NetworkRegistryUpdateResponder)> {
659 if let NetworkRegistryRequest::Update { network, responder } = self {
660 Some((network, responder))
661 } else {
662 None
663 }
664 }
665
666 #[allow(irrefutable_let_patterns)]
667 pub fn into_remove(self) -> Option<(u32, NetworkRegistryRemoveResponder)> {
668 if let NetworkRegistryRequest::Remove { network_id, responder } = self {
669 Some((network_id, responder))
670 } else {
671 None
672 }
673 }
674
675 pub fn method_name(&self) -> &'static str {
677 match *self {
678 NetworkRegistryRequest::SetDefault { .. } => "set_default",
679 NetworkRegistryRequest::Add { .. } => "add",
680 NetworkRegistryRequest::Update { .. } => "update",
681 NetworkRegistryRequest::Remove { .. } => "remove",
682 }
683 }
684}
685
686#[derive(Debug, Clone)]
687pub struct NetworkRegistryControlHandle {
688 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
689}
690
691impl NetworkRegistryControlHandle {
692 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
693 self.inner.shutdown_with_epitaph(status.into())
694 }
695}
696
697impl fidl::endpoints::ControlHandle for NetworkRegistryControlHandle {
698 fn shutdown(&self) {
699 self.inner.shutdown()
700 }
701
702 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
703 self.inner.shutdown_with_epitaph(status)
704 }
705
706 fn is_closed(&self) -> bool {
707 self.inner.channel().is_closed()
708 }
709 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
710 self.inner.channel().on_closed()
711 }
712
713 #[cfg(target_os = "fuchsia")]
714 fn signal_peer(
715 &self,
716 clear_mask: zx::Signals,
717 set_mask: zx::Signals,
718 ) -> Result<(), zx_status::Status> {
719 use fidl::Peered;
720 self.inner.channel().signal_peer(clear_mask, set_mask)
721 }
722}
723
724impl NetworkRegistryControlHandle {}
725
726#[must_use = "FIDL methods require a response to be sent"]
727#[derive(Debug)]
728pub struct NetworkRegistrySetDefaultResponder {
729 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
730 tx_id: u32,
731}
732
733impl std::ops::Drop for NetworkRegistrySetDefaultResponder {
737 fn drop(&mut self) {
738 self.control_handle.shutdown();
739 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
741 }
742}
743
744impl fidl::endpoints::Responder for NetworkRegistrySetDefaultResponder {
745 type ControlHandle = NetworkRegistryControlHandle;
746
747 fn control_handle(&self) -> &NetworkRegistryControlHandle {
748 &self.control_handle
749 }
750
751 fn drop_without_shutdown(mut self) {
752 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
754 std::mem::forget(self);
756 }
757}
758
759impl NetworkRegistrySetDefaultResponder {
760 pub fn send(
764 self,
765 mut result: Result<(), NetworkRegistrySetDefaultError>,
766 ) -> Result<(), fidl::Error> {
767 let _result = self.send_raw(result);
768 if _result.is_err() {
769 self.control_handle.shutdown();
770 }
771 self.drop_without_shutdown();
772 _result
773 }
774
775 pub fn send_no_shutdown_on_err(
777 self,
778 mut result: Result<(), NetworkRegistrySetDefaultError>,
779 ) -> Result<(), fidl::Error> {
780 let _result = self.send_raw(result);
781 self.drop_without_shutdown();
782 _result
783 }
784
785 fn send_raw(
786 &self,
787 mut result: Result<(), NetworkRegistrySetDefaultError>,
788 ) -> Result<(), fidl::Error> {
789 self.control_handle.inner.send::<fidl::encoding::ResultType<
790 fidl::encoding::EmptyStruct,
791 NetworkRegistrySetDefaultError,
792 >>(
793 result,
794 self.tx_id,
795 0x787930c67b8cf82c,
796 fidl::encoding::DynamicFlags::empty(),
797 )
798 }
799}
800
801#[must_use = "FIDL methods require a response to be sent"]
802#[derive(Debug)]
803pub struct NetworkRegistryAddResponder {
804 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
805 tx_id: u32,
806}
807
808impl std::ops::Drop for NetworkRegistryAddResponder {
812 fn drop(&mut self) {
813 self.control_handle.shutdown();
814 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
816 }
817}
818
819impl fidl::endpoints::Responder for NetworkRegistryAddResponder {
820 type ControlHandle = NetworkRegistryControlHandle;
821
822 fn control_handle(&self) -> &NetworkRegistryControlHandle {
823 &self.control_handle
824 }
825
826 fn drop_without_shutdown(mut self) {
827 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
829 std::mem::forget(self);
831 }
832}
833
834impl NetworkRegistryAddResponder {
835 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
839 let _result = self.send_raw(result);
840 if _result.is_err() {
841 self.control_handle.shutdown();
842 }
843 self.drop_without_shutdown();
844 _result
845 }
846
847 pub fn send_no_shutdown_on_err(
849 self,
850 mut result: Result<(), NetworkRegistryAddError>,
851 ) -> Result<(), fidl::Error> {
852 let _result = self.send_raw(result);
853 self.drop_without_shutdown();
854 _result
855 }
856
857 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
858 self.control_handle.inner.send::<fidl::encoding::ResultType<
859 fidl::encoding::EmptyStruct,
860 NetworkRegistryAddError,
861 >>(
862 result,
863 self.tx_id,
864 0x197e70a1cbeab3ad,
865 fidl::encoding::DynamicFlags::empty(),
866 )
867 }
868}
869
870#[must_use = "FIDL methods require a response to be sent"]
871#[derive(Debug)]
872pub struct NetworkRegistryUpdateResponder {
873 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
874 tx_id: u32,
875}
876
877impl std::ops::Drop for NetworkRegistryUpdateResponder {
881 fn drop(&mut self) {
882 self.control_handle.shutdown();
883 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
885 }
886}
887
888impl fidl::endpoints::Responder for NetworkRegistryUpdateResponder {
889 type ControlHandle = NetworkRegistryControlHandle;
890
891 fn control_handle(&self) -> &NetworkRegistryControlHandle {
892 &self.control_handle
893 }
894
895 fn drop_without_shutdown(mut self) {
896 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
898 std::mem::forget(self);
900 }
901}
902
903impl NetworkRegistryUpdateResponder {
904 pub fn send(
908 self,
909 mut result: Result<(), NetworkRegistryUpdateError>,
910 ) -> Result<(), fidl::Error> {
911 let _result = self.send_raw(result);
912 if _result.is_err() {
913 self.control_handle.shutdown();
914 }
915 self.drop_without_shutdown();
916 _result
917 }
918
919 pub fn send_no_shutdown_on_err(
921 self,
922 mut result: Result<(), NetworkRegistryUpdateError>,
923 ) -> Result<(), fidl::Error> {
924 let _result = self.send_raw(result);
925 self.drop_without_shutdown();
926 _result
927 }
928
929 fn send_raw(
930 &self,
931 mut result: Result<(), NetworkRegistryUpdateError>,
932 ) -> Result<(), fidl::Error> {
933 self.control_handle.inner.send::<fidl::encoding::ResultType<
934 fidl::encoding::EmptyStruct,
935 NetworkRegistryUpdateError,
936 >>(
937 result,
938 self.tx_id,
939 0x3bc790ae5418ff0e,
940 fidl::encoding::DynamicFlags::empty(),
941 )
942 }
943}
944
945#[must_use = "FIDL methods require a response to be sent"]
946#[derive(Debug)]
947pub struct NetworkRegistryRemoveResponder {
948 control_handle: std::mem::ManuallyDrop<NetworkRegistryControlHandle>,
949 tx_id: u32,
950}
951
952impl std::ops::Drop for NetworkRegistryRemoveResponder {
956 fn drop(&mut self) {
957 self.control_handle.shutdown();
958 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
960 }
961}
962
963impl fidl::endpoints::Responder for NetworkRegistryRemoveResponder {
964 type ControlHandle = NetworkRegistryControlHandle;
965
966 fn control_handle(&self) -> &NetworkRegistryControlHandle {
967 &self.control_handle
968 }
969
970 fn drop_without_shutdown(mut self) {
971 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
973 std::mem::forget(self);
975 }
976}
977
978impl NetworkRegistryRemoveResponder {
979 pub fn send(
983 self,
984 mut result: Result<(), NetworkRegistryRemoveError>,
985 ) -> Result<(), fidl::Error> {
986 let _result = self.send_raw(result);
987 if _result.is_err() {
988 self.control_handle.shutdown();
989 }
990 self.drop_without_shutdown();
991 _result
992 }
993
994 pub fn send_no_shutdown_on_err(
996 self,
997 mut result: Result<(), NetworkRegistryRemoveError>,
998 ) -> Result<(), fidl::Error> {
999 let _result = self.send_raw(result);
1000 self.drop_without_shutdown();
1001 _result
1002 }
1003
1004 fn send_raw(
1005 &self,
1006 mut result: Result<(), NetworkRegistryRemoveError>,
1007 ) -> Result<(), fidl::Error> {
1008 self.control_handle.inner.send::<fidl::encoding::ResultType<
1009 fidl::encoding::EmptyStruct,
1010 NetworkRegistryRemoveError,
1011 >>(
1012 result,
1013 self.tx_id,
1014 0x1302df41dca6379e,
1015 fidl::encoding::DynamicFlags::empty(),
1016 )
1017 }
1018}
1019
1020#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1021pub struct StarnixNetworksMarker;
1022
1023impl fidl::endpoints::ProtocolMarker for StarnixNetworksMarker {
1024 type Proxy = StarnixNetworksProxy;
1025 type RequestStream = StarnixNetworksRequestStream;
1026 #[cfg(target_os = "fuchsia")]
1027 type SynchronousProxy = StarnixNetworksSynchronousProxy;
1028
1029 const DEBUG_NAME: &'static str = "fuchsia.net.policy.socketproxy.StarnixNetworks";
1030}
1031impl fidl::endpoints::DiscoverableProtocolMarker for StarnixNetworksMarker {}
1032
1033pub trait StarnixNetworksProxyInterface: Send + Sync {
1034 type SetDefaultResponseFut: std::future::Future<Output = Result<NetworkRegistrySetDefaultResult, fidl::Error>>
1035 + Send;
1036 fn r#set_default(
1037 &self,
1038 network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1039 ) -> Self::SetDefaultResponseFut;
1040 type AddResponseFut: std::future::Future<Output = Result<NetworkRegistryAddResult, fidl::Error>>
1041 + Send;
1042 fn r#add(&self, network: &Network) -> Self::AddResponseFut;
1043 type UpdateResponseFut: std::future::Future<Output = Result<NetworkRegistryUpdateResult, fidl::Error>>
1044 + Send;
1045 fn r#update(&self, network: &Network) -> Self::UpdateResponseFut;
1046 type RemoveResponseFut: std::future::Future<Output = Result<NetworkRegistryRemoveResult, fidl::Error>>
1047 + Send;
1048 fn r#remove(&self, network_id: u32) -> Self::RemoveResponseFut;
1049}
1050#[derive(Debug)]
1051#[cfg(target_os = "fuchsia")]
1052pub struct StarnixNetworksSynchronousProxy {
1053 client: fidl::client::sync::Client,
1054}
1055
1056#[cfg(target_os = "fuchsia")]
1057impl fidl::endpoints::SynchronousProxy for StarnixNetworksSynchronousProxy {
1058 type Proxy = StarnixNetworksProxy;
1059 type Protocol = StarnixNetworksMarker;
1060
1061 fn from_channel(inner: fidl::Channel) -> Self {
1062 Self::new(inner)
1063 }
1064
1065 fn into_channel(self) -> fidl::Channel {
1066 self.client.into_channel()
1067 }
1068
1069 fn as_channel(&self) -> &fidl::Channel {
1070 self.client.as_channel()
1071 }
1072}
1073
1074#[cfg(target_os = "fuchsia")]
1075impl StarnixNetworksSynchronousProxy {
1076 pub fn new(channel: fidl::Channel) -> Self {
1077 Self { client: fidl::client::sync::Client::new(channel) }
1078 }
1079
1080 pub fn into_channel(self) -> fidl::Channel {
1081 self.client.into_channel()
1082 }
1083
1084 pub fn wait_for_event(
1087 &self,
1088 deadline: zx::MonotonicInstant,
1089 ) -> Result<StarnixNetworksEvent, fidl::Error> {
1090 StarnixNetworksEvent::decode(self.client.wait_for_event::<StarnixNetworksMarker>(deadline)?)
1091 }
1092
1093 pub fn r#set_default(
1097 &self,
1098 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1099 ___deadline: zx::MonotonicInstant,
1100 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1101 let _response =
1102 self.client.send_query::<NetworkRegistrySetDefaultRequest, fidl::encoding::ResultType<
1103 fidl::encoding::EmptyStruct,
1104 NetworkRegistrySetDefaultError,
1105 >, StarnixNetworksMarker>(
1106 (network_id,),
1107 0x787930c67b8cf82c,
1108 fidl::encoding::DynamicFlags::empty(),
1109 ___deadline,
1110 )?;
1111 Ok(_response.map(|x| x))
1112 }
1113
1114 pub fn r#add(
1119 &self,
1120 mut network: &Network,
1121 ___deadline: zx::MonotonicInstant,
1122 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1123 let _response =
1124 self.client.send_query::<NetworkRegistryAddRequest, fidl::encoding::ResultType<
1125 fidl::encoding::EmptyStruct,
1126 NetworkRegistryAddError,
1127 >, StarnixNetworksMarker>(
1128 (network,),
1129 0x197e70a1cbeab3ad,
1130 fidl::encoding::DynamicFlags::empty(),
1131 ___deadline,
1132 )?;
1133 Ok(_response.map(|x| x))
1134 }
1135
1136 pub fn r#update(
1141 &self,
1142 mut network: &Network,
1143 ___deadline: zx::MonotonicInstant,
1144 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1145 let _response =
1146 self.client.send_query::<NetworkRegistryUpdateRequest, fidl::encoding::ResultType<
1147 fidl::encoding::EmptyStruct,
1148 NetworkRegistryUpdateError,
1149 >, StarnixNetworksMarker>(
1150 (network,),
1151 0x3bc790ae5418ff0e,
1152 fidl::encoding::DynamicFlags::empty(),
1153 ___deadline,
1154 )?;
1155 Ok(_response.map(|x| x))
1156 }
1157
1158 pub fn r#remove(
1163 &self,
1164 mut network_id: u32,
1165 ___deadline: zx::MonotonicInstant,
1166 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1167 let _response =
1168 self.client.send_query::<NetworkRegistryRemoveRequest, fidl::encoding::ResultType<
1169 fidl::encoding::EmptyStruct,
1170 NetworkRegistryRemoveError,
1171 >, StarnixNetworksMarker>(
1172 (network_id,),
1173 0x1302df41dca6379e,
1174 fidl::encoding::DynamicFlags::empty(),
1175 ___deadline,
1176 )?;
1177 Ok(_response.map(|x| x))
1178 }
1179}
1180
1181#[cfg(target_os = "fuchsia")]
1182impl From<StarnixNetworksSynchronousProxy> for zx::NullableHandle {
1183 fn from(value: StarnixNetworksSynchronousProxy) -> Self {
1184 value.into_channel().into()
1185 }
1186}
1187
1188#[cfg(target_os = "fuchsia")]
1189impl From<fidl::Channel> for StarnixNetworksSynchronousProxy {
1190 fn from(value: fidl::Channel) -> Self {
1191 Self::new(value)
1192 }
1193}
1194
1195#[cfg(target_os = "fuchsia")]
1196impl fidl::endpoints::FromClient for StarnixNetworksSynchronousProxy {
1197 type Protocol = StarnixNetworksMarker;
1198
1199 fn from_client(value: fidl::endpoints::ClientEnd<StarnixNetworksMarker>) -> Self {
1200 Self::new(value.into_channel())
1201 }
1202}
1203
1204#[derive(Debug, Clone)]
1205pub struct StarnixNetworksProxy {
1206 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1207}
1208
1209impl fidl::endpoints::Proxy for StarnixNetworksProxy {
1210 type Protocol = StarnixNetworksMarker;
1211
1212 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1213 Self::new(inner)
1214 }
1215
1216 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1217 self.client.into_channel().map_err(|client| Self { client })
1218 }
1219
1220 fn as_channel(&self) -> &::fidl::AsyncChannel {
1221 self.client.as_channel()
1222 }
1223}
1224
1225impl StarnixNetworksProxy {
1226 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1228 let protocol_name = <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1229 Self { client: fidl::client::Client::new(channel, protocol_name) }
1230 }
1231
1232 pub fn take_event_stream(&self) -> StarnixNetworksEventStream {
1238 StarnixNetworksEventStream { event_receiver: self.client.take_event_receiver() }
1239 }
1240
1241 pub fn r#set_default(
1245 &self,
1246 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1247 ) -> fidl::client::QueryResponseFut<
1248 NetworkRegistrySetDefaultResult,
1249 fidl::encoding::DefaultFuchsiaResourceDialect,
1250 > {
1251 StarnixNetworksProxyInterface::r#set_default(self, network_id)
1252 }
1253
1254 pub fn r#add(
1259 &self,
1260 mut network: &Network,
1261 ) -> fidl::client::QueryResponseFut<
1262 NetworkRegistryAddResult,
1263 fidl::encoding::DefaultFuchsiaResourceDialect,
1264 > {
1265 StarnixNetworksProxyInterface::r#add(self, network)
1266 }
1267
1268 pub fn r#update(
1273 &self,
1274 mut network: &Network,
1275 ) -> fidl::client::QueryResponseFut<
1276 NetworkRegistryUpdateResult,
1277 fidl::encoding::DefaultFuchsiaResourceDialect,
1278 > {
1279 StarnixNetworksProxyInterface::r#update(self, network)
1280 }
1281
1282 pub fn r#remove(
1287 &self,
1288 mut network_id: u32,
1289 ) -> fidl::client::QueryResponseFut<
1290 NetworkRegistryRemoveResult,
1291 fidl::encoding::DefaultFuchsiaResourceDialect,
1292 > {
1293 StarnixNetworksProxyInterface::r#remove(self, network_id)
1294 }
1295}
1296
1297impl StarnixNetworksProxyInterface for StarnixNetworksProxy {
1298 type SetDefaultResponseFut = fidl::client::QueryResponseFut<
1299 NetworkRegistrySetDefaultResult,
1300 fidl::encoding::DefaultFuchsiaResourceDialect,
1301 >;
1302 fn r#set_default(
1303 &self,
1304 mut network_id: &fidl_fuchsia_posix_socket::OptionalUint32,
1305 ) -> Self::SetDefaultResponseFut {
1306 fn _decode(
1307 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1308 ) -> Result<NetworkRegistrySetDefaultResult, fidl::Error> {
1309 let _response = fidl::client::decode_transaction_body::<
1310 fidl::encoding::ResultType<
1311 fidl::encoding::EmptyStruct,
1312 NetworkRegistrySetDefaultError,
1313 >,
1314 fidl::encoding::DefaultFuchsiaResourceDialect,
1315 0x787930c67b8cf82c,
1316 >(_buf?)?;
1317 Ok(_response.map(|x| x))
1318 }
1319 self.client.send_query_and_decode::<
1320 NetworkRegistrySetDefaultRequest,
1321 NetworkRegistrySetDefaultResult,
1322 >(
1323 (network_id,),
1324 0x787930c67b8cf82c,
1325 fidl::encoding::DynamicFlags::empty(),
1326 _decode,
1327 )
1328 }
1329
1330 type AddResponseFut = fidl::client::QueryResponseFut<
1331 NetworkRegistryAddResult,
1332 fidl::encoding::DefaultFuchsiaResourceDialect,
1333 >;
1334 fn r#add(&self, mut network: &Network) -> Self::AddResponseFut {
1335 fn _decode(
1336 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1337 ) -> Result<NetworkRegistryAddResult, fidl::Error> {
1338 let _response = fidl::client::decode_transaction_body::<
1339 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryAddError>,
1340 fidl::encoding::DefaultFuchsiaResourceDialect,
1341 0x197e70a1cbeab3ad,
1342 >(_buf?)?;
1343 Ok(_response.map(|x| x))
1344 }
1345 self.client.send_query_and_decode::<NetworkRegistryAddRequest, NetworkRegistryAddResult>(
1346 (network,),
1347 0x197e70a1cbeab3ad,
1348 fidl::encoding::DynamicFlags::empty(),
1349 _decode,
1350 )
1351 }
1352
1353 type UpdateResponseFut = fidl::client::QueryResponseFut<
1354 NetworkRegistryUpdateResult,
1355 fidl::encoding::DefaultFuchsiaResourceDialect,
1356 >;
1357 fn r#update(&self, mut network: &Network) -> Self::UpdateResponseFut {
1358 fn _decode(
1359 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1360 ) -> Result<NetworkRegistryUpdateResult, fidl::Error> {
1361 let _response = fidl::client::decode_transaction_body::<
1362 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryUpdateError>,
1363 fidl::encoding::DefaultFuchsiaResourceDialect,
1364 0x3bc790ae5418ff0e,
1365 >(_buf?)?;
1366 Ok(_response.map(|x| x))
1367 }
1368 self.client
1369 .send_query_and_decode::<NetworkRegistryUpdateRequest, NetworkRegistryUpdateResult>(
1370 (network,),
1371 0x3bc790ae5418ff0e,
1372 fidl::encoding::DynamicFlags::empty(),
1373 _decode,
1374 )
1375 }
1376
1377 type RemoveResponseFut = fidl::client::QueryResponseFut<
1378 NetworkRegistryRemoveResult,
1379 fidl::encoding::DefaultFuchsiaResourceDialect,
1380 >;
1381 fn r#remove(&self, mut network_id: u32) -> Self::RemoveResponseFut {
1382 fn _decode(
1383 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1384 ) -> Result<NetworkRegistryRemoveResult, fidl::Error> {
1385 let _response = fidl::client::decode_transaction_body::<
1386 fidl::encoding::ResultType<fidl::encoding::EmptyStruct, NetworkRegistryRemoveError>,
1387 fidl::encoding::DefaultFuchsiaResourceDialect,
1388 0x1302df41dca6379e,
1389 >(_buf?)?;
1390 Ok(_response.map(|x| x))
1391 }
1392 self.client
1393 .send_query_and_decode::<NetworkRegistryRemoveRequest, NetworkRegistryRemoveResult>(
1394 (network_id,),
1395 0x1302df41dca6379e,
1396 fidl::encoding::DynamicFlags::empty(),
1397 _decode,
1398 )
1399 }
1400}
1401
1402pub struct StarnixNetworksEventStream {
1403 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1404}
1405
1406impl std::marker::Unpin for StarnixNetworksEventStream {}
1407
1408impl futures::stream::FusedStream for StarnixNetworksEventStream {
1409 fn is_terminated(&self) -> bool {
1410 self.event_receiver.is_terminated()
1411 }
1412}
1413
1414impl futures::Stream for StarnixNetworksEventStream {
1415 type Item = Result<StarnixNetworksEvent, fidl::Error>;
1416
1417 fn poll_next(
1418 mut self: std::pin::Pin<&mut Self>,
1419 cx: &mut std::task::Context<'_>,
1420 ) -> std::task::Poll<Option<Self::Item>> {
1421 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1422 &mut self.event_receiver,
1423 cx
1424 )?) {
1425 Some(buf) => std::task::Poll::Ready(Some(StarnixNetworksEvent::decode(buf))),
1426 None => std::task::Poll::Ready(None),
1427 }
1428 }
1429}
1430
1431#[derive(Debug)]
1432pub enum StarnixNetworksEvent {}
1433
1434impl StarnixNetworksEvent {
1435 fn decode(
1437 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1438 ) -> Result<StarnixNetworksEvent, fidl::Error> {
1439 let (bytes, _handles) = buf.split_mut();
1440 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1441 debug_assert_eq!(tx_header.tx_id, 0);
1442 match tx_header.ordinal {
1443 _ => Err(fidl::Error::UnknownOrdinal {
1444 ordinal: tx_header.ordinal,
1445 protocol_name:
1446 <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1447 }),
1448 }
1449 }
1450}
1451
1452pub struct StarnixNetworksRequestStream {
1454 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1455 is_terminated: bool,
1456}
1457
1458impl std::marker::Unpin for StarnixNetworksRequestStream {}
1459
1460impl futures::stream::FusedStream for StarnixNetworksRequestStream {
1461 fn is_terminated(&self) -> bool {
1462 self.is_terminated
1463 }
1464}
1465
1466impl fidl::endpoints::RequestStream for StarnixNetworksRequestStream {
1467 type Protocol = StarnixNetworksMarker;
1468 type ControlHandle = StarnixNetworksControlHandle;
1469
1470 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1471 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1472 }
1473
1474 fn control_handle(&self) -> Self::ControlHandle {
1475 StarnixNetworksControlHandle { inner: self.inner.clone() }
1476 }
1477
1478 fn into_inner(
1479 self,
1480 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1481 {
1482 (self.inner, self.is_terminated)
1483 }
1484
1485 fn from_inner(
1486 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1487 is_terminated: bool,
1488 ) -> Self {
1489 Self { inner, is_terminated }
1490 }
1491}
1492
1493impl futures::Stream for StarnixNetworksRequestStream {
1494 type Item = Result<StarnixNetworksRequest, fidl::Error>;
1495
1496 fn poll_next(
1497 mut self: std::pin::Pin<&mut Self>,
1498 cx: &mut std::task::Context<'_>,
1499 ) -> std::task::Poll<Option<Self::Item>> {
1500 let this = &mut *self;
1501 if this.inner.check_shutdown(cx) {
1502 this.is_terminated = true;
1503 return std::task::Poll::Ready(None);
1504 }
1505 if this.is_terminated {
1506 panic!("polled StarnixNetworksRequestStream after completion");
1507 }
1508 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1509 |bytes, handles| {
1510 match this.inner.channel().read_etc(cx, bytes, handles) {
1511 std::task::Poll::Ready(Ok(())) => {}
1512 std::task::Poll::Pending => return std::task::Poll::Pending,
1513 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1514 this.is_terminated = true;
1515 return std::task::Poll::Ready(None);
1516 }
1517 std::task::Poll::Ready(Err(e)) => {
1518 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1519 e.into(),
1520 ))));
1521 }
1522 }
1523
1524 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1526
1527 std::task::Poll::Ready(Some(match header.ordinal {
1528 0x787930c67b8cf82c => {
1529 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1530 let mut req = fidl::new_empty!(
1531 NetworkRegistrySetDefaultRequest,
1532 fidl::encoding::DefaultFuchsiaResourceDialect
1533 );
1534 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistrySetDefaultRequest>(&header, _body_bytes, handles, &mut req)?;
1535 let control_handle =
1536 StarnixNetworksControlHandle { inner: this.inner.clone() };
1537 Ok(StarnixNetworksRequest::SetDefault {
1538 network_id: req.network_id,
1539
1540 responder: StarnixNetworksSetDefaultResponder {
1541 control_handle: std::mem::ManuallyDrop::new(control_handle),
1542 tx_id: header.tx_id,
1543 },
1544 })
1545 }
1546 0x197e70a1cbeab3ad => {
1547 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1548 let mut req = fidl::new_empty!(
1549 NetworkRegistryAddRequest,
1550 fidl::encoding::DefaultFuchsiaResourceDialect
1551 );
1552 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryAddRequest>(&header, _body_bytes, handles, &mut req)?;
1553 let control_handle =
1554 StarnixNetworksControlHandle { inner: this.inner.clone() };
1555 Ok(StarnixNetworksRequest::Add {
1556 network: req.network,
1557
1558 responder: StarnixNetworksAddResponder {
1559 control_handle: std::mem::ManuallyDrop::new(control_handle),
1560 tx_id: header.tx_id,
1561 },
1562 })
1563 }
1564 0x3bc790ae5418ff0e => {
1565 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1566 let mut req = fidl::new_empty!(
1567 NetworkRegistryUpdateRequest,
1568 fidl::encoding::DefaultFuchsiaResourceDialect
1569 );
1570 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryUpdateRequest>(&header, _body_bytes, handles, &mut req)?;
1571 let control_handle =
1572 StarnixNetworksControlHandle { inner: this.inner.clone() };
1573 Ok(StarnixNetworksRequest::Update {
1574 network: req.network,
1575
1576 responder: StarnixNetworksUpdateResponder {
1577 control_handle: std::mem::ManuallyDrop::new(control_handle),
1578 tx_id: header.tx_id,
1579 },
1580 })
1581 }
1582 0x1302df41dca6379e => {
1583 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1584 let mut req = fidl::new_empty!(
1585 NetworkRegistryRemoveRequest,
1586 fidl::encoding::DefaultFuchsiaResourceDialect
1587 );
1588 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRegistryRemoveRequest>(&header, _body_bytes, handles, &mut req)?;
1589 let control_handle =
1590 StarnixNetworksControlHandle { inner: this.inner.clone() };
1591 Ok(StarnixNetworksRequest::Remove {
1592 network_id: req.network_id,
1593
1594 responder: StarnixNetworksRemoveResponder {
1595 control_handle: std::mem::ManuallyDrop::new(control_handle),
1596 tx_id: header.tx_id,
1597 },
1598 })
1599 }
1600 _ => Err(fidl::Error::UnknownOrdinal {
1601 ordinal: header.ordinal,
1602 protocol_name:
1603 <StarnixNetworksMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1604 }),
1605 }))
1606 },
1607 )
1608 }
1609}
1610
1611#[derive(Debug)]
1616pub enum StarnixNetworksRequest {
1617 SetDefault {
1621 network_id: fidl_fuchsia_posix_socket::OptionalUint32,
1622 responder: StarnixNetworksSetDefaultResponder,
1623 },
1624 Add { network: Network, responder: StarnixNetworksAddResponder },
1629 Update { network: Network, responder: StarnixNetworksUpdateResponder },
1634 Remove { network_id: u32, responder: StarnixNetworksRemoveResponder },
1639}
1640
1641impl StarnixNetworksRequest {
1642 #[allow(irrefutable_let_patterns)]
1643 pub fn into_set_default(
1644 self,
1645 ) -> Option<(fidl_fuchsia_posix_socket::OptionalUint32, StarnixNetworksSetDefaultResponder)>
1646 {
1647 if let StarnixNetworksRequest::SetDefault { network_id, responder } = self {
1648 Some((network_id, responder))
1649 } else {
1650 None
1651 }
1652 }
1653
1654 #[allow(irrefutable_let_patterns)]
1655 pub fn into_add(self) -> Option<(Network, StarnixNetworksAddResponder)> {
1656 if let StarnixNetworksRequest::Add { network, responder } = self {
1657 Some((network, responder))
1658 } else {
1659 None
1660 }
1661 }
1662
1663 #[allow(irrefutable_let_patterns)]
1664 pub fn into_update(self) -> Option<(Network, StarnixNetworksUpdateResponder)> {
1665 if let StarnixNetworksRequest::Update { network, responder } = self {
1666 Some((network, responder))
1667 } else {
1668 None
1669 }
1670 }
1671
1672 #[allow(irrefutable_let_patterns)]
1673 pub fn into_remove(self) -> Option<(u32, StarnixNetworksRemoveResponder)> {
1674 if let StarnixNetworksRequest::Remove { network_id, responder } = self {
1675 Some((network_id, responder))
1676 } else {
1677 None
1678 }
1679 }
1680
1681 pub fn method_name(&self) -> &'static str {
1683 match *self {
1684 StarnixNetworksRequest::SetDefault { .. } => "set_default",
1685 StarnixNetworksRequest::Add { .. } => "add",
1686 StarnixNetworksRequest::Update { .. } => "update",
1687 StarnixNetworksRequest::Remove { .. } => "remove",
1688 }
1689 }
1690}
1691
1692#[derive(Debug, Clone)]
1693pub struct StarnixNetworksControlHandle {
1694 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1695}
1696
1697impl StarnixNetworksControlHandle {
1698 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
1699 self.inner.shutdown_with_epitaph(status.into())
1700 }
1701}
1702
1703impl fidl::endpoints::ControlHandle for StarnixNetworksControlHandle {
1704 fn shutdown(&self) {
1705 self.inner.shutdown()
1706 }
1707
1708 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
1709 self.inner.shutdown_with_epitaph(status)
1710 }
1711
1712 fn is_closed(&self) -> bool {
1713 self.inner.channel().is_closed()
1714 }
1715 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1716 self.inner.channel().on_closed()
1717 }
1718
1719 #[cfg(target_os = "fuchsia")]
1720 fn signal_peer(
1721 &self,
1722 clear_mask: zx::Signals,
1723 set_mask: zx::Signals,
1724 ) -> Result<(), zx_status::Status> {
1725 use fidl::Peered;
1726 self.inner.channel().signal_peer(clear_mask, set_mask)
1727 }
1728}
1729
1730impl StarnixNetworksControlHandle {}
1731
1732#[must_use = "FIDL methods require a response to be sent"]
1733#[derive(Debug)]
1734pub struct StarnixNetworksSetDefaultResponder {
1735 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
1736 tx_id: u32,
1737}
1738
1739impl std::ops::Drop for StarnixNetworksSetDefaultResponder {
1743 fn drop(&mut self) {
1744 self.control_handle.shutdown();
1745 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1747 }
1748}
1749
1750impl fidl::endpoints::Responder for StarnixNetworksSetDefaultResponder {
1751 type ControlHandle = StarnixNetworksControlHandle;
1752
1753 fn control_handle(&self) -> &StarnixNetworksControlHandle {
1754 &self.control_handle
1755 }
1756
1757 fn drop_without_shutdown(mut self) {
1758 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1760 std::mem::forget(self);
1762 }
1763}
1764
1765impl StarnixNetworksSetDefaultResponder {
1766 pub fn send(
1770 self,
1771 mut result: Result<(), NetworkRegistrySetDefaultError>,
1772 ) -> Result<(), fidl::Error> {
1773 let _result = self.send_raw(result);
1774 if _result.is_err() {
1775 self.control_handle.shutdown();
1776 }
1777 self.drop_without_shutdown();
1778 _result
1779 }
1780
1781 pub fn send_no_shutdown_on_err(
1783 self,
1784 mut result: Result<(), NetworkRegistrySetDefaultError>,
1785 ) -> Result<(), fidl::Error> {
1786 let _result = self.send_raw(result);
1787 self.drop_without_shutdown();
1788 _result
1789 }
1790
1791 fn send_raw(
1792 &self,
1793 mut result: Result<(), NetworkRegistrySetDefaultError>,
1794 ) -> Result<(), fidl::Error> {
1795 self.control_handle.inner.send::<fidl::encoding::ResultType<
1796 fidl::encoding::EmptyStruct,
1797 NetworkRegistrySetDefaultError,
1798 >>(
1799 result,
1800 self.tx_id,
1801 0x787930c67b8cf82c,
1802 fidl::encoding::DynamicFlags::empty(),
1803 )
1804 }
1805}
1806
1807#[must_use = "FIDL methods require a response to be sent"]
1808#[derive(Debug)]
1809pub struct StarnixNetworksAddResponder {
1810 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
1811 tx_id: u32,
1812}
1813
1814impl std::ops::Drop for StarnixNetworksAddResponder {
1818 fn drop(&mut self) {
1819 self.control_handle.shutdown();
1820 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1822 }
1823}
1824
1825impl fidl::endpoints::Responder for StarnixNetworksAddResponder {
1826 type ControlHandle = StarnixNetworksControlHandle;
1827
1828 fn control_handle(&self) -> &StarnixNetworksControlHandle {
1829 &self.control_handle
1830 }
1831
1832 fn drop_without_shutdown(mut self) {
1833 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1835 std::mem::forget(self);
1837 }
1838}
1839
1840impl StarnixNetworksAddResponder {
1841 pub fn send(self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1845 let _result = self.send_raw(result);
1846 if _result.is_err() {
1847 self.control_handle.shutdown();
1848 }
1849 self.drop_without_shutdown();
1850 _result
1851 }
1852
1853 pub fn send_no_shutdown_on_err(
1855 self,
1856 mut result: Result<(), NetworkRegistryAddError>,
1857 ) -> Result<(), fidl::Error> {
1858 let _result = self.send_raw(result);
1859 self.drop_without_shutdown();
1860 _result
1861 }
1862
1863 fn send_raw(&self, mut result: Result<(), NetworkRegistryAddError>) -> Result<(), fidl::Error> {
1864 self.control_handle.inner.send::<fidl::encoding::ResultType<
1865 fidl::encoding::EmptyStruct,
1866 NetworkRegistryAddError,
1867 >>(
1868 result,
1869 self.tx_id,
1870 0x197e70a1cbeab3ad,
1871 fidl::encoding::DynamicFlags::empty(),
1872 )
1873 }
1874}
1875
1876#[must_use = "FIDL methods require a response to be sent"]
1877#[derive(Debug)]
1878pub struct StarnixNetworksUpdateResponder {
1879 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
1880 tx_id: u32,
1881}
1882
1883impl std::ops::Drop for StarnixNetworksUpdateResponder {
1887 fn drop(&mut self) {
1888 self.control_handle.shutdown();
1889 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1891 }
1892}
1893
1894impl fidl::endpoints::Responder for StarnixNetworksUpdateResponder {
1895 type ControlHandle = StarnixNetworksControlHandle;
1896
1897 fn control_handle(&self) -> &StarnixNetworksControlHandle {
1898 &self.control_handle
1899 }
1900
1901 fn drop_without_shutdown(mut self) {
1902 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1904 std::mem::forget(self);
1906 }
1907}
1908
1909impl StarnixNetworksUpdateResponder {
1910 pub fn send(
1914 self,
1915 mut result: Result<(), NetworkRegistryUpdateError>,
1916 ) -> Result<(), fidl::Error> {
1917 let _result = self.send_raw(result);
1918 if _result.is_err() {
1919 self.control_handle.shutdown();
1920 }
1921 self.drop_without_shutdown();
1922 _result
1923 }
1924
1925 pub fn send_no_shutdown_on_err(
1927 self,
1928 mut result: Result<(), NetworkRegistryUpdateError>,
1929 ) -> Result<(), fidl::Error> {
1930 let _result = self.send_raw(result);
1931 self.drop_without_shutdown();
1932 _result
1933 }
1934
1935 fn send_raw(
1936 &self,
1937 mut result: Result<(), NetworkRegistryUpdateError>,
1938 ) -> Result<(), fidl::Error> {
1939 self.control_handle.inner.send::<fidl::encoding::ResultType<
1940 fidl::encoding::EmptyStruct,
1941 NetworkRegistryUpdateError,
1942 >>(
1943 result,
1944 self.tx_id,
1945 0x3bc790ae5418ff0e,
1946 fidl::encoding::DynamicFlags::empty(),
1947 )
1948 }
1949}
1950
1951#[must_use = "FIDL methods require a response to be sent"]
1952#[derive(Debug)]
1953pub struct StarnixNetworksRemoveResponder {
1954 control_handle: std::mem::ManuallyDrop<StarnixNetworksControlHandle>,
1955 tx_id: u32,
1956}
1957
1958impl std::ops::Drop for StarnixNetworksRemoveResponder {
1962 fn drop(&mut self) {
1963 self.control_handle.shutdown();
1964 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1966 }
1967}
1968
1969impl fidl::endpoints::Responder for StarnixNetworksRemoveResponder {
1970 type ControlHandle = StarnixNetworksControlHandle;
1971
1972 fn control_handle(&self) -> &StarnixNetworksControlHandle {
1973 &self.control_handle
1974 }
1975
1976 fn drop_without_shutdown(mut self) {
1977 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1979 std::mem::forget(self);
1981 }
1982}
1983
1984impl StarnixNetworksRemoveResponder {
1985 pub fn send(
1989 self,
1990 mut result: Result<(), NetworkRegistryRemoveError>,
1991 ) -> Result<(), fidl::Error> {
1992 let _result = self.send_raw(result);
1993 if _result.is_err() {
1994 self.control_handle.shutdown();
1995 }
1996 self.drop_without_shutdown();
1997 _result
1998 }
1999
2000 pub fn send_no_shutdown_on_err(
2002 self,
2003 mut result: Result<(), NetworkRegistryRemoveError>,
2004 ) -> Result<(), fidl::Error> {
2005 let _result = self.send_raw(result);
2006 self.drop_without_shutdown();
2007 _result
2008 }
2009
2010 fn send_raw(
2011 &self,
2012 mut result: Result<(), NetworkRegistryRemoveError>,
2013 ) -> Result<(), fidl::Error> {
2014 self.control_handle.inner.send::<fidl::encoding::ResultType<
2015 fidl::encoding::EmptyStruct,
2016 NetworkRegistryRemoveError,
2017 >>(
2018 result,
2019 self.tx_id,
2020 0x1302df41dca6379e,
2021 fidl::encoding::DynamicFlags::empty(),
2022 )
2023 }
2024}
2025
2026mod internal {
2027 use super::*;
2028}