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_netemul_network__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct DeviceProxyServeControllerRequest {
16 pub req: fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
20 for DeviceProxyServeControllerRequest
21{
22}
23
24#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
25pub struct DeviceProxyServeDeviceRequest {
26 pub req: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
27}
28
29impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
30 for DeviceProxyServeDeviceRequest
31{
32}
33
34#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
35pub struct EndpointGetPortRequest {
36 pub port: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
37}
38
39impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for EndpointGetPortRequest {}
40
41#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
42pub struct EndpointGetProxyRequest {
43 pub proxy: fidl::endpoints::ServerEnd<DeviceProxy_Marker>,
44}
45
46impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for EndpointGetProxyRequest {}
47
48#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
49pub struct EndpointManagerCreateEndpointResponse {
50 pub status: i32,
51 pub endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
52}
53
54impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
55 for EndpointManagerCreateEndpointResponse
56{
57}
58
59#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
60pub struct EndpointManagerGetEndpointResponse {
61 pub endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
62}
63
64impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
65 for EndpointManagerGetEndpointResponse
66{
67}
68
69#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
70pub struct NetworkContextCloneRequest {
71 pub network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
72}
73
74impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
75 for NetworkContextCloneRequest
76{
77}
78
79#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
80pub struct NetworkContextGetEndpointManagerRequest {
81 pub endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
82}
83
84impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
85 for NetworkContextGetEndpointManagerRequest
86{
87}
88
89#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
90pub struct NetworkContextGetNetworkManagerRequest {
91 pub net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
92}
93
94impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
95 for NetworkContextGetNetworkManagerRequest
96{
97}
98
99#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
100pub struct NetworkContextSetupResponse {
101 pub status: i32,
102 pub setup_handle: Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
103}
104
105impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
106 for NetworkContextSetupResponse
107{
108}
109
110#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
111pub struct NetworkCreateFakeEndpointRequest {
112 pub ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
113}
114
115impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
116 for NetworkCreateFakeEndpointRequest
117{
118}
119
120#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
121pub struct NetworkManagerCreateNetworkResponse {
122 pub status: i32,
123 pub net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
124}
125
126impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
127 for NetworkManagerCreateNetworkResponse
128{
129}
130
131#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
132pub struct NetworkManagerGetNetworkResponse {
133 pub net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
134}
135
136impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
137 for NetworkManagerGetNetworkResponse
138{
139}
140
141#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
142pub struct DeviceProxy_Marker;
143
144impl fidl::endpoints::ProtocolMarker for DeviceProxy_Marker {
145 type Proxy = DeviceProxy_Proxy;
146 type RequestStream = DeviceProxy_RequestStream;
147 #[cfg(target_os = "fuchsia")]
148 type SynchronousProxy = DeviceProxy_SynchronousProxy;
149
150 const DEBUG_NAME: &'static str = "(anonymous) DeviceProxy_";
151}
152
153pub trait DeviceProxy_ProxyInterface: Send + Sync {
154 fn r#serve_controller(
155 &self,
156 req: fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
157 ) -> Result<(), fidl::Error>;
158 fn r#serve_device(
159 &self,
160 req: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
161 ) -> Result<(), fidl::Error>;
162}
163#[derive(Debug)]
164#[cfg(target_os = "fuchsia")]
165pub struct DeviceProxy_SynchronousProxy {
166 client: fidl::client::sync::Client,
167}
168
169#[cfg(target_os = "fuchsia")]
170impl fidl::endpoints::SynchronousProxy for DeviceProxy_SynchronousProxy {
171 type Proxy = DeviceProxy_Proxy;
172 type Protocol = DeviceProxy_Marker;
173
174 fn from_channel(inner: fidl::Channel) -> Self {
175 Self::new(inner)
176 }
177
178 fn into_channel(self) -> fidl::Channel {
179 self.client.into_channel()
180 }
181
182 fn as_channel(&self) -> &fidl::Channel {
183 self.client.as_channel()
184 }
185}
186
187#[cfg(target_os = "fuchsia")]
188impl DeviceProxy_SynchronousProxy {
189 pub fn new(channel: fidl::Channel) -> Self {
190 let protocol_name = <DeviceProxy_Marker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
191 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
192 }
193
194 pub fn into_channel(self) -> fidl::Channel {
195 self.client.into_channel()
196 }
197
198 pub fn wait_for_event(
201 &self,
202 deadline: zx::MonotonicInstant,
203 ) -> Result<DeviceProxy_Event, fidl::Error> {
204 DeviceProxy_Event::decode(self.client.wait_for_event(deadline)?)
205 }
206
207 pub fn r#serve_controller(
209 &self,
210 mut req: fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
211 ) -> Result<(), fidl::Error> {
212 self.client.send::<DeviceProxyServeControllerRequest>(
213 (req,),
214 0x326c17ad2d3879ee,
215 fidl::encoding::DynamicFlags::empty(),
216 )
217 }
218
219 pub fn r#serve_device(
221 &self,
222 mut req: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
223 ) -> Result<(), fidl::Error> {
224 self.client.send::<DeviceProxyServeDeviceRequest>(
225 (req,),
226 0x645dae2573613288,
227 fidl::encoding::DynamicFlags::empty(),
228 )
229 }
230}
231
232#[cfg(target_os = "fuchsia")]
233impl From<DeviceProxy_SynchronousProxy> for zx::NullableHandle {
234 fn from(value: DeviceProxy_SynchronousProxy) -> Self {
235 value.into_channel().into()
236 }
237}
238
239#[cfg(target_os = "fuchsia")]
240impl From<fidl::Channel> for DeviceProxy_SynchronousProxy {
241 fn from(value: fidl::Channel) -> Self {
242 Self::new(value)
243 }
244}
245
246#[cfg(target_os = "fuchsia")]
247impl fidl::endpoints::FromClient for DeviceProxy_SynchronousProxy {
248 type Protocol = DeviceProxy_Marker;
249
250 fn from_client(value: fidl::endpoints::ClientEnd<DeviceProxy_Marker>) -> Self {
251 Self::new(value.into_channel())
252 }
253}
254
255#[derive(Debug, Clone)]
256pub struct DeviceProxy_Proxy {
257 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
258}
259
260impl fidl::endpoints::Proxy for DeviceProxy_Proxy {
261 type Protocol = DeviceProxy_Marker;
262
263 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
264 Self::new(inner)
265 }
266
267 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
268 self.client.into_channel().map_err(|client| Self { client })
269 }
270
271 fn as_channel(&self) -> &::fidl::AsyncChannel {
272 self.client.as_channel()
273 }
274}
275
276impl DeviceProxy_Proxy {
277 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
279 let protocol_name = <DeviceProxy_Marker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
280 Self { client: fidl::client::Client::new(channel, protocol_name) }
281 }
282
283 pub fn take_event_stream(&self) -> DeviceProxy_EventStream {
289 DeviceProxy_EventStream { event_receiver: self.client.take_event_receiver() }
290 }
291
292 pub fn r#serve_controller(
294 &self,
295 mut req: fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
296 ) -> Result<(), fidl::Error> {
297 DeviceProxy_ProxyInterface::r#serve_controller(self, req)
298 }
299
300 pub fn r#serve_device(
302 &self,
303 mut req: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
304 ) -> Result<(), fidl::Error> {
305 DeviceProxy_ProxyInterface::r#serve_device(self, req)
306 }
307}
308
309impl DeviceProxy_ProxyInterface for DeviceProxy_Proxy {
310 fn r#serve_controller(
311 &self,
312 mut req: fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
313 ) -> Result<(), fidl::Error> {
314 self.client.send::<DeviceProxyServeControllerRequest>(
315 (req,),
316 0x326c17ad2d3879ee,
317 fidl::encoding::DynamicFlags::empty(),
318 )
319 }
320
321 fn r#serve_device(
322 &self,
323 mut req: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
324 ) -> Result<(), fidl::Error> {
325 self.client.send::<DeviceProxyServeDeviceRequest>(
326 (req,),
327 0x645dae2573613288,
328 fidl::encoding::DynamicFlags::empty(),
329 )
330 }
331}
332
333pub struct DeviceProxy_EventStream {
334 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
335}
336
337impl std::marker::Unpin for DeviceProxy_EventStream {}
338
339impl futures::stream::FusedStream for DeviceProxy_EventStream {
340 fn is_terminated(&self) -> bool {
341 self.event_receiver.is_terminated()
342 }
343}
344
345impl futures::Stream for DeviceProxy_EventStream {
346 type Item = Result<DeviceProxy_Event, fidl::Error>;
347
348 fn poll_next(
349 mut self: std::pin::Pin<&mut Self>,
350 cx: &mut std::task::Context<'_>,
351 ) -> std::task::Poll<Option<Self::Item>> {
352 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
353 &mut self.event_receiver,
354 cx
355 )?) {
356 Some(buf) => std::task::Poll::Ready(Some(DeviceProxy_Event::decode(buf))),
357 None => std::task::Poll::Ready(None),
358 }
359 }
360}
361
362#[derive(Debug)]
363pub enum DeviceProxy_Event {}
364
365impl DeviceProxy_Event {
366 fn decode(
368 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
369 ) -> Result<DeviceProxy_Event, fidl::Error> {
370 let (bytes, _handles) = buf.split_mut();
371 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
372 debug_assert_eq!(tx_header.tx_id, 0);
373 match tx_header.ordinal {
374 _ => Err(fidl::Error::UnknownOrdinal {
375 ordinal: tx_header.ordinal,
376 protocol_name: <DeviceProxy_Marker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
377 }),
378 }
379 }
380}
381
382pub struct DeviceProxy_RequestStream {
384 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
385 is_terminated: bool,
386}
387
388impl std::marker::Unpin for DeviceProxy_RequestStream {}
389
390impl futures::stream::FusedStream for DeviceProxy_RequestStream {
391 fn is_terminated(&self) -> bool {
392 self.is_terminated
393 }
394}
395
396impl fidl::endpoints::RequestStream for DeviceProxy_RequestStream {
397 type Protocol = DeviceProxy_Marker;
398 type ControlHandle = DeviceProxy_ControlHandle;
399
400 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
401 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
402 }
403
404 fn control_handle(&self) -> Self::ControlHandle {
405 DeviceProxy_ControlHandle { inner: self.inner.clone() }
406 }
407
408 fn into_inner(
409 self,
410 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
411 {
412 (self.inner, self.is_terminated)
413 }
414
415 fn from_inner(
416 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
417 is_terminated: bool,
418 ) -> Self {
419 Self { inner, is_terminated }
420 }
421}
422
423impl futures::Stream for DeviceProxy_RequestStream {
424 type Item = Result<DeviceProxy_Request, fidl::Error>;
425
426 fn poll_next(
427 mut self: std::pin::Pin<&mut Self>,
428 cx: &mut std::task::Context<'_>,
429 ) -> std::task::Poll<Option<Self::Item>> {
430 let this = &mut *self;
431 if this.inner.check_shutdown(cx) {
432 this.is_terminated = true;
433 return std::task::Poll::Ready(None);
434 }
435 if this.is_terminated {
436 panic!("polled DeviceProxy_RequestStream after completion");
437 }
438 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
439 |bytes, handles| {
440 match this.inner.channel().read_etc(cx, bytes, handles) {
441 std::task::Poll::Ready(Ok(())) => {}
442 std::task::Poll::Pending => return std::task::Poll::Pending,
443 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
444 this.is_terminated = true;
445 return std::task::Poll::Ready(None);
446 }
447 std::task::Poll::Ready(Err(e)) => {
448 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
449 e.into(),
450 ))));
451 }
452 }
453
454 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
456
457 std::task::Poll::Ready(Some(match header.ordinal {
458 0x326c17ad2d3879ee => {
459 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
460 let mut req = fidl::new_empty!(
461 DeviceProxyServeControllerRequest,
462 fidl::encoding::DefaultFuchsiaResourceDialect
463 );
464 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DeviceProxyServeControllerRequest>(&header, _body_bytes, handles, &mut req)?;
465 let control_handle =
466 DeviceProxy_ControlHandle { inner: this.inner.clone() };
467 Ok(DeviceProxy_Request::ServeController { req: req.req, control_handle })
468 }
469 0x645dae2573613288 => {
470 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
471 let mut req = fidl::new_empty!(
472 DeviceProxyServeDeviceRequest,
473 fidl::encoding::DefaultFuchsiaResourceDialect
474 );
475 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<DeviceProxyServeDeviceRequest>(&header, _body_bytes, handles, &mut req)?;
476 let control_handle =
477 DeviceProxy_ControlHandle { inner: this.inner.clone() };
478 Ok(DeviceProxy_Request::ServeDevice { req: req.req, control_handle })
479 }
480 _ => Err(fidl::Error::UnknownOrdinal {
481 ordinal: header.ordinal,
482 protocol_name:
483 <DeviceProxy_Marker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
484 }),
485 }))
486 },
487 )
488 }
489}
490
491#[derive(Debug)]
493pub enum DeviceProxy_Request {
494 ServeController {
496 req: fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
497 control_handle: DeviceProxy_ControlHandle,
498 },
499 ServeDevice {
501 req: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
502 control_handle: DeviceProxy_ControlHandle,
503 },
504}
505
506impl DeviceProxy_Request {
507 #[allow(irrefutable_let_patterns)]
508 pub fn into_serve_controller(
509 self,
510 ) -> Option<(
511 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
512 DeviceProxy_ControlHandle,
513 )> {
514 if let DeviceProxy_Request::ServeController { req, control_handle } = self {
515 Some((req, control_handle))
516 } else {
517 None
518 }
519 }
520
521 #[allow(irrefutable_let_patterns)]
522 pub fn into_serve_device(
523 self,
524 ) -> Option<(
525 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
526 DeviceProxy_ControlHandle,
527 )> {
528 if let DeviceProxy_Request::ServeDevice { req, control_handle } = self {
529 Some((req, control_handle))
530 } else {
531 None
532 }
533 }
534
535 pub fn method_name(&self) -> &'static str {
537 match *self {
538 DeviceProxy_Request::ServeController { .. } => "serve_controller",
539 DeviceProxy_Request::ServeDevice { .. } => "serve_device",
540 }
541 }
542}
543
544#[derive(Debug, Clone)]
545pub struct DeviceProxy_ControlHandle {
546 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
547}
548
549impl fidl::endpoints::ControlHandle for DeviceProxy_ControlHandle {
550 fn shutdown(&self) {
551 self.inner.shutdown()
552 }
553
554 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
555 self.inner.shutdown_with_epitaph(status)
556 }
557
558 fn is_closed(&self) -> bool {
559 self.inner.channel().is_closed()
560 }
561 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
562 self.inner.channel().on_closed()
563 }
564
565 #[cfg(target_os = "fuchsia")]
566 fn signal_peer(
567 &self,
568 clear_mask: zx::Signals,
569 set_mask: zx::Signals,
570 ) -> Result<(), zx_status::Status> {
571 use fidl::Peered;
572 self.inner.channel().signal_peer(clear_mask, set_mask)
573 }
574}
575
576impl DeviceProxy_ControlHandle {}
577
578#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
579pub struct EndpointMarker;
580
581impl fidl::endpoints::ProtocolMarker for EndpointMarker {
582 type Proxy = EndpointProxy;
583 type RequestStream = EndpointRequestStream;
584 #[cfg(target_os = "fuchsia")]
585 type SynchronousProxy = EndpointSynchronousProxy;
586
587 const DEBUG_NAME: &'static str = "(anonymous) Endpoint";
588}
589
590pub trait EndpointProxyInterface: Send + Sync {
591 type GetConfigResponseFut: std::future::Future<Output = Result<EndpointConfig, fidl::Error>>
592 + Send;
593 fn r#get_config(&self) -> Self::GetConfigResponseFut;
594 type GetNameResponseFut: std::future::Future<Output = Result<String, fidl::Error>> + Send;
595 fn r#get_name(&self) -> Self::GetNameResponseFut;
596 type SetLinkUpResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
597 fn r#set_link_up(&self, up: bool) -> Self::SetLinkUpResponseFut;
598 fn r#get_port(
599 &self,
600 port: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
601 ) -> Result<(), fidl::Error>;
602 fn r#get_proxy_(
603 &self,
604 proxy: fidl::endpoints::ServerEnd<DeviceProxy_Marker>,
605 ) -> Result<(), fidl::Error>;
606}
607#[derive(Debug)]
608#[cfg(target_os = "fuchsia")]
609pub struct EndpointSynchronousProxy {
610 client: fidl::client::sync::Client,
611}
612
613#[cfg(target_os = "fuchsia")]
614impl fidl::endpoints::SynchronousProxy for EndpointSynchronousProxy {
615 type Proxy = EndpointProxy;
616 type Protocol = EndpointMarker;
617
618 fn from_channel(inner: fidl::Channel) -> Self {
619 Self::new(inner)
620 }
621
622 fn into_channel(self) -> fidl::Channel {
623 self.client.into_channel()
624 }
625
626 fn as_channel(&self) -> &fidl::Channel {
627 self.client.as_channel()
628 }
629}
630
631#[cfg(target_os = "fuchsia")]
632impl EndpointSynchronousProxy {
633 pub fn new(channel: fidl::Channel) -> Self {
634 let protocol_name = <EndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
635 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
636 }
637
638 pub fn into_channel(self) -> fidl::Channel {
639 self.client.into_channel()
640 }
641
642 pub fn wait_for_event(
645 &self,
646 deadline: zx::MonotonicInstant,
647 ) -> Result<EndpointEvent, fidl::Error> {
648 EndpointEvent::decode(self.client.wait_for_event(deadline)?)
649 }
650
651 pub fn r#get_config(
652 &self,
653 ___deadline: zx::MonotonicInstant,
654 ) -> Result<EndpointConfig, fidl::Error> {
655 let _response =
656 self.client.send_query::<fidl::encoding::EmptyPayload, EndpointGetConfigResponse>(
657 (),
658 0x3589f54aa3748539,
659 fidl::encoding::DynamicFlags::empty(),
660 ___deadline,
661 )?;
662 Ok(_response.config)
663 }
664
665 pub fn r#get_name(&self, ___deadline: zx::MonotonicInstant) -> Result<String, fidl::Error> {
667 let _response =
668 self.client.send_query::<fidl::encoding::EmptyPayload, EndpointGetNameResponse>(
669 (),
670 0x7d69650823557aab,
671 fidl::encoding::DynamicFlags::empty(),
672 ___deadline,
673 )?;
674 Ok(_response.name)
675 }
676
677 pub fn r#set_link_up(
679 &self,
680 mut up: bool,
681 ___deadline: zx::MonotonicInstant,
682 ) -> Result<(), fidl::Error> {
683 let _response =
684 self.client.send_query::<EndpointSetLinkUpRequest, fidl::encoding::EmptyPayload>(
685 (up,),
686 0x4dde77de68d02e11,
687 fidl::encoding::DynamicFlags::empty(),
688 ___deadline,
689 )?;
690 Ok(_response)
691 }
692
693 pub fn r#get_port(
695 &self,
696 mut port: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
697 ) -> Result<(), fidl::Error> {
698 self.client.send::<EndpointGetPortRequest>(
699 (port,),
700 0x68151e034eccc958,
701 fidl::encoding::DynamicFlags::empty(),
702 )
703 }
704
705 pub fn r#get_proxy_(
707 &self,
708 mut proxy: fidl::endpoints::ServerEnd<DeviceProxy_Marker>,
709 ) -> Result<(), fidl::Error> {
710 self.client.send::<EndpointGetProxyRequest>(
711 (proxy,),
712 0x476e5a57c4288ee9,
713 fidl::encoding::DynamicFlags::empty(),
714 )
715 }
716}
717
718#[cfg(target_os = "fuchsia")]
719impl From<EndpointSynchronousProxy> for zx::NullableHandle {
720 fn from(value: EndpointSynchronousProxy) -> Self {
721 value.into_channel().into()
722 }
723}
724
725#[cfg(target_os = "fuchsia")]
726impl From<fidl::Channel> for EndpointSynchronousProxy {
727 fn from(value: fidl::Channel) -> Self {
728 Self::new(value)
729 }
730}
731
732#[cfg(target_os = "fuchsia")]
733impl fidl::endpoints::FromClient for EndpointSynchronousProxy {
734 type Protocol = EndpointMarker;
735
736 fn from_client(value: fidl::endpoints::ClientEnd<EndpointMarker>) -> Self {
737 Self::new(value.into_channel())
738 }
739}
740
741#[derive(Debug, Clone)]
742pub struct EndpointProxy {
743 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
744}
745
746impl fidl::endpoints::Proxy for EndpointProxy {
747 type Protocol = EndpointMarker;
748
749 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
750 Self::new(inner)
751 }
752
753 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
754 self.client.into_channel().map_err(|client| Self { client })
755 }
756
757 fn as_channel(&self) -> &::fidl::AsyncChannel {
758 self.client.as_channel()
759 }
760}
761
762impl EndpointProxy {
763 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
765 let protocol_name = <EndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
766 Self { client: fidl::client::Client::new(channel, protocol_name) }
767 }
768
769 pub fn take_event_stream(&self) -> EndpointEventStream {
775 EndpointEventStream { event_receiver: self.client.take_event_receiver() }
776 }
777
778 pub fn r#get_config(
779 &self,
780 ) -> fidl::client::QueryResponseFut<EndpointConfig, fidl::encoding::DefaultFuchsiaResourceDialect>
781 {
782 EndpointProxyInterface::r#get_config(self)
783 }
784
785 pub fn r#get_name(
787 &self,
788 ) -> fidl::client::QueryResponseFut<String, fidl::encoding::DefaultFuchsiaResourceDialect> {
789 EndpointProxyInterface::r#get_name(self)
790 }
791
792 pub fn r#set_link_up(
794 &self,
795 mut up: bool,
796 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
797 EndpointProxyInterface::r#set_link_up(self, up)
798 }
799
800 pub fn r#get_port(
802 &self,
803 mut port: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
804 ) -> Result<(), fidl::Error> {
805 EndpointProxyInterface::r#get_port(self, port)
806 }
807
808 pub fn r#get_proxy_(
810 &self,
811 mut proxy: fidl::endpoints::ServerEnd<DeviceProxy_Marker>,
812 ) -> Result<(), fidl::Error> {
813 EndpointProxyInterface::r#get_proxy_(self, proxy)
814 }
815}
816
817impl EndpointProxyInterface for EndpointProxy {
818 type GetConfigResponseFut = fidl::client::QueryResponseFut<
819 EndpointConfig,
820 fidl::encoding::DefaultFuchsiaResourceDialect,
821 >;
822 fn r#get_config(&self) -> Self::GetConfigResponseFut {
823 fn _decode(
824 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
825 ) -> Result<EndpointConfig, fidl::Error> {
826 let _response = fidl::client::decode_transaction_body::<
827 EndpointGetConfigResponse,
828 fidl::encoding::DefaultFuchsiaResourceDialect,
829 0x3589f54aa3748539,
830 >(_buf?)?;
831 Ok(_response.config)
832 }
833 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, EndpointConfig>(
834 (),
835 0x3589f54aa3748539,
836 fidl::encoding::DynamicFlags::empty(),
837 _decode,
838 )
839 }
840
841 type GetNameResponseFut =
842 fidl::client::QueryResponseFut<String, fidl::encoding::DefaultFuchsiaResourceDialect>;
843 fn r#get_name(&self) -> Self::GetNameResponseFut {
844 fn _decode(
845 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
846 ) -> Result<String, fidl::Error> {
847 let _response = fidl::client::decode_transaction_body::<
848 EndpointGetNameResponse,
849 fidl::encoding::DefaultFuchsiaResourceDialect,
850 0x7d69650823557aab,
851 >(_buf?)?;
852 Ok(_response.name)
853 }
854 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, String>(
855 (),
856 0x7d69650823557aab,
857 fidl::encoding::DynamicFlags::empty(),
858 _decode,
859 )
860 }
861
862 type SetLinkUpResponseFut =
863 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
864 fn r#set_link_up(&self, mut up: bool) -> Self::SetLinkUpResponseFut {
865 fn _decode(
866 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
867 ) -> Result<(), fidl::Error> {
868 let _response = fidl::client::decode_transaction_body::<
869 fidl::encoding::EmptyPayload,
870 fidl::encoding::DefaultFuchsiaResourceDialect,
871 0x4dde77de68d02e11,
872 >(_buf?)?;
873 Ok(_response)
874 }
875 self.client.send_query_and_decode::<EndpointSetLinkUpRequest, ()>(
876 (up,),
877 0x4dde77de68d02e11,
878 fidl::encoding::DynamicFlags::empty(),
879 _decode,
880 )
881 }
882
883 fn r#get_port(
884 &self,
885 mut port: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
886 ) -> Result<(), fidl::Error> {
887 self.client.send::<EndpointGetPortRequest>(
888 (port,),
889 0x68151e034eccc958,
890 fidl::encoding::DynamicFlags::empty(),
891 )
892 }
893
894 fn r#get_proxy_(
895 &self,
896 mut proxy: fidl::endpoints::ServerEnd<DeviceProxy_Marker>,
897 ) -> Result<(), fidl::Error> {
898 self.client.send::<EndpointGetProxyRequest>(
899 (proxy,),
900 0x476e5a57c4288ee9,
901 fidl::encoding::DynamicFlags::empty(),
902 )
903 }
904}
905
906pub struct EndpointEventStream {
907 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
908}
909
910impl std::marker::Unpin for EndpointEventStream {}
911
912impl futures::stream::FusedStream for EndpointEventStream {
913 fn is_terminated(&self) -> bool {
914 self.event_receiver.is_terminated()
915 }
916}
917
918impl futures::Stream for EndpointEventStream {
919 type Item = Result<EndpointEvent, fidl::Error>;
920
921 fn poll_next(
922 mut self: std::pin::Pin<&mut Self>,
923 cx: &mut std::task::Context<'_>,
924 ) -> std::task::Poll<Option<Self::Item>> {
925 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
926 &mut self.event_receiver,
927 cx
928 )?) {
929 Some(buf) => std::task::Poll::Ready(Some(EndpointEvent::decode(buf))),
930 None => std::task::Poll::Ready(None),
931 }
932 }
933}
934
935#[derive(Debug)]
936pub enum EndpointEvent {}
937
938impl EndpointEvent {
939 fn decode(
941 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
942 ) -> Result<EndpointEvent, fidl::Error> {
943 let (bytes, _handles) = buf.split_mut();
944 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
945 debug_assert_eq!(tx_header.tx_id, 0);
946 match tx_header.ordinal {
947 _ => Err(fidl::Error::UnknownOrdinal {
948 ordinal: tx_header.ordinal,
949 protocol_name: <EndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
950 }),
951 }
952 }
953}
954
955pub struct EndpointRequestStream {
957 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
958 is_terminated: bool,
959}
960
961impl std::marker::Unpin for EndpointRequestStream {}
962
963impl futures::stream::FusedStream for EndpointRequestStream {
964 fn is_terminated(&self) -> bool {
965 self.is_terminated
966 }
967}
968
969impl fidl::endpoints::RequestStream for EndpointRequestStream {
970 type Protocol = EndpointMarker;
971 type ControlHandle = EndpointControlHandle;
972
973 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
974 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
975 }
976
977 fn control_handle(&self) -> Self::ControlHandle {
978 EndpointControlHandle { inner: self.inner.clone() }
979 }
980
981 fn into_inner(
982 self,
983 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
984 {
985 (self.inner, self.is_terminated)
986 }
987
988 fn from_inner(
989 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
990 is_terminated: bool,
991 ) -> Self {
992 Self { inner, is_terminated }
993 }
994}
995
996impl futures::Stream for EndpointRequestStream {
997 type Item = Result<EndpointRequest, fidl::Error>;
998
999 fn poll_next(
1000 mut self: std::pin::Pin<&mut Self>,
1001 cx: &mut std::task::Context<'_>,
1002 ) -> std::task::Poll<Option<Self::Item>> {
1003 let this = &mut *self;
1004 if this.inner.check_shutdown(cx) {
1005 this.is_terminated = true;
1006 return std::task::Poll::Ready(None);
1007 }
1008 if this.is_terminated {
1009 panic!("polled EndpointRequestStream after completion");
1010 }
1011 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1012 |bytes, handles| {
1013 match this.inner.channel().read_etc(cx, bytes, handles) {
1014 std::task::Poll::Ready(Ok(())) => {}
1015 std::task::Poll::Pending => return std::task::Poll::Pending,
1016 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1017 this.is_terminated = true;
1018 return std::task::Poll::Ready(None);
1019 }
1020 std::task::Poll::Ready(Err(e)) => {
1021 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1022 e.into(),
1023 ))));
1024 }
1025 }
1026
1027 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1029
1030 std::task::Poll::Ready(Some(match header.ordinal {
1031 0x3589f54aa3748539 => {
1032 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1033 let mut req = fidl::new_empty!(
1034 fidl::encoding::EmptyPayload,
1035 fidl::encoding::DefaultFuchsiaResourceDialect
1036 );
1037 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1038 let control_handle = EndpointControlHandle { inner: this.inner.clone() };
1039 Ok(EndpointRequest::GetConfig {
1040 responder: EndpointGetConfigResponder {
1041 control_handle: std::mem::ManuallyDrop::new(control_handle),
1042 tx_id: header.tx_id,
1043 },
1044 })
1045 }
1046 0x7d69650823557aab => {
1047 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1048 let mut req = fidl::new_empty!(
1049 fidl::encoding::EmptyPayload,
1050 fidl::encoding::DefaultFuchsiaResourceDialect
1051 );
1052 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1053 let control_handle = EndpointControlHandle { inner: this.inner.clone() };
1054 Ok(EndpointRequest::GetName {
1055 responder: EndpointGetNameResponder {
1056 control_handle: std::mem::ManuallyDrop::new(control_handle),
1057 tx_id: header.tx_id,
1058 },
1059 })
1060 }
1061 0x4dde77de68d02e11 => {
1062 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1063 let mut req = fidl::new_empty!(
1064 EndpointSetLinkUpRequest,
1065 fidl::encoding::DefaultFuchsiaResourceDialect
1066 );
1067 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<EndpointSetLinkUpRequest>(&header, _body_bytes, handles, &mut req)?;
1068 let control_handle = EndpointControlHandle { inner: this.inner.clone() };
1069 Ok(EndpointRequest::SetLinkUp {
1070 up: req.up,
1071
1072 responder: EndpointSetLinkUpResponder {
1073 control_handle: std::mem::ManuallyDrop::new(control_handle),
1074 tx_id: header.tx_id,
1075 },
1076 })
1077 }
1078 0x68151e034eccc958 => {
1079 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1080 let mut req = fidl::new_empty!(
1081 EndpointGetPortRequest,
1082 fidl::encoding::DefaultFuchsiaResourceDialect
1083 );
1084 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<EndpointGetPortRequest>(&header, _body_bytes, handles, &mut req)?;
1085 let control_handle = EndpointControlHandle { inner: this.inner.clone() };
1086 Ok(EndpointRequest::GetPort { port: req.port, control_handle })
1087 }
1088 0x476e5a57c4288ee9 => {
1089 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1090 let mut req = fidl::new_empty!(
1091 EndpointGetProxyRequest,
1092 fidl::encoding::DefaultFuchsiaResourceDialect
1093 );
1094 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<EndpointGetProxyRequest>(&header, _body_bytes, handles, &mut req)?;
1095 let control_handle = EndpointControlHandle { inner: this.inner.clone() };
1096 Ok(EndpointRequest::GetProxy_ { proxy: req.proxy, control_handle })
1097 }
1098 _ => Err(fidl::Error::UnknownOrdinal {
1099 ordinal: header.ordinal,
1100 protocol_name:
1101 <EndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1102 }),
1103 }))
1104 },
1105 )
1106 }
1107}
1108
1109#[derive(Debug)]
1111pub enum EndpointRequest {
1112 GetConfig {
1113 responder: EndpointGetConfigResponder,
1114 },
1115 GetName {
1117 responder: EndpointGetNameResponder,
1118 },
1119 SetLinkUp {
1121 up: bool,
1122 responder: EndpointSetLinkUpResponder,
1123 },
1124 GetPort {
1126 port: fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
1127 control_handle: EndpointControlHandle,
1128 },
1129 GetProxy_ {
1131 proxy: fidl::endpoints::ServerEnd<DeviceProxy_Marker>,
1132 control_handle: EndpointControlHandle,
1133 },
1134}
1135
1136impl EndpointRequest {
1137 #[allow(irrefutable_let_patterns)]
1138 pub fn into_get_config(self) -> Option<(EndpointGetConfigResponder)> {
1139 if let EndpointRequest::GetConfig { responder } = self { Some((responder)) } else { None }
1140 }
1141
1142 #[allow(irrefutable_let_patterns)]
1143 pub fn into_get_name(self) -> Option<(EndpointGetNameResponder)> {
1144 if let EndpointRequest::GetName { responder } = self { Some((responder)) } else { None }
1145 }
1146
1147 #[allow(irrefutable_let_patterns)]
1148 pub fn into_set_link_up(self) -> Option<(bool, EndpointSetLinkUpResponder)> {
1149 if let EndpointRequest::SetLinkUp { up, responder } = self {
1150 Some((up, responder))
1151 } else {
1152 None
1153 }
1154 }
1155
1156 #[allow(irrefutable_let_patterns)]
1157 pub fn into_get_port(
1158 self,
1159 ) -> Option<(
1160 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
1161 EndpointControlHandle,
1162 )> {
1163 if let EndpointRequest::GetPort { port, control_handle } = self {
1164 Some((port, control_handle))
1165 } else {
1166 None
1167 }
1168 }
1169
1170 #[allow(irrefutable_let_patterns)]
1171 pub fn into_get_proxy_(
1172 self,
1173 ) -> Option<(fidl::endpoints::ServerEnd<DeviceProxy_Marker>, EndpointControlHandle)> {
1174 if let EndpointRequest::GetProxy_ { proxy, control_handle } = self {
1175 Some((proxy, control_handle))
1176 } else {
1177 None
1178 }
1179 }
1180
1181 pub fn method_name(&self) -> &'static str {
1183 match *self {
1184 EndpointRequest::GetConfig { .. } => "get_config",
1185 EndpointRequest::GetName { .. } => "get_name",
1186 EndpointRequest::SetLinkUp { .. } => "set_link_up",
1187 EndpointRequest::GetPort { .. } => "get_port",
1188 EndpointRequest::GetProxy_ { .. } => "get_proxy_",
1189 }
1190 }
1191}
1192
1193#[derive(Debug, Clone)]
1194pub struct EndpointControlHandle {
1195 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1196}
1197
1198impl fidl::endpoints::ControlHandle for EndpointControlHandle {
1199 fn shutdown(&self) {
1200 self.inner.shutdown()
1201 }
1202
1203 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1204 self.inner.shutdown_with_epitaph(status)
1205 }
1206
1207 fn is_closed(&self) -> bool {
1208 self.inner.channel().is_closed()
1209 }
1210 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1211 self.inner.channel().on_closed()
1212 }
1213
1214 #[cfg(target_os = "fuchsia")]
1215 fn signal_peer(
1216 &self,
1217 clear_mask: zx::Signals,
1218 set_mask: zx::Signals,
1219 ) -> Result<(), zx_status::Status> {
1220 use fidl::Peered;
1221 self.inner.channel().signal_peer(clear_mask, set_mask)
1222 }
1223}
1224
1225impl EndpointControlHandle {}
1226
1227#[must_use = "FIDL methods require a response to be sent"]
1228#[derive(Debug)]
1229pub struct EndpointGetConfigResponder {
1230 control_handle: std::mem::ManuallyDrop<EndpointControlHandle>,
1231 tx_id: u32,
1232}
1233
1234impl std::ops::Drop for EndpointGetConfigResponder {
1238 fn drop(&mut self) {
1239 self.control_handle.shutdown();
1240 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1242 }
1243}
1244
1245impl fidl::endpoints::Responder for EndpointGetConfigResponder {
1246 type ControlHandle = EndpointControlHandle;
1247
1248 fn control_handle(&self) -> &EndpointControlHandle {
1249 &self.control_handle
1250 }
1251
1252 fn drop_without_shutdown(mut self) {
1253 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1255 std::mem::forget(self);
1257 }
1258}
1259
1260impl EndpointGetConfigResponder {
1261 pub fn send(self, mut config: &EndpointConfig) -> Result<(), fidl::Error> {
1265 let _result = self.send_raw(config);
1266 if _result.is_err() {
1267 self.control_handle.shutdown();
1268 }
1269 self.drop_without_shutdown();
1270 _result
1271 }
1272
1273 pub fn send_no_shutdown_on_err(self, mut config: &EndpointConfig) -> Result<(), fidl::Error> {
1275 let _result = self.send_raw(config);
1276 self.drop_without_shutdown();
1277 _result
1278 }
1279
1280 fn send_raw(&self, mut config: &EndpointConfig) -> Result<(), fidl::Error> {
1281 self.control_handle.inner.send::<EndpointGetConfigResponse>(
1282 (config,),
1283 self.tx_id,
1284 0x3589f54aa3748539,
1285 fidl::encoding::DynamicFlags::empty(),
1286 )
1287 }
1288}
1289
1290#[must_use = "FIDL methods require a response to be sent"]
1291#[derive(Debug)]
1292pub struct EndpointGetNameResponder {
1293 control_handle: std::mem::ManuallyDrop<EndpointControlHandle>,
1294 tx_id: u32,
1295}
1296
1297impl std::ops::Drop for EndpointGetNameResponder {
1301 fn drop(&mut self) {
1302 self.control_handle.shutdown();
1303 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1305 }
1306}
1307
1308impl fidl::endpoints::Responder for EndpointGetNameResponder {
1309 type ControlHandle = EndpointControlHandle;
1310
1311 fn control_handle(&self) -> &EndpointControlHandle {
1312 &self.control_handle
1313 }
1314
1315 fn drop_without_shutdown(mut self) {
1316 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1318 std::mem::forget(self);
1320 }
1321}
1322
1323impl EndpointGetNameResponder {
1324 pub fn send(self, mut name: &str) -> Result<(), fidl::Error> {
1328 let _result = self.send_raw(name);
1329 if _result.is_err() {
1330 self.control_handle.shutdown();
1331 }
1332 self.drop_without_shutdown();
1333 _result
1334 }
1335
1336 pub fn send_no_shutdown_on_err(self, mut name: &str) -> Result<(), fidl::Error> {
1338 let _result = self.send_raw(name);
1339 self.drop_without_shutdown();
1340 _result
1341 }
1342
1343 fn send_raw(&self, mut name: &str) -> Result<(), fidl::Error> {
1344 self.control_handle.inner.send::<EndpointGetNameResponse>(
1345 (name,),
1346 self.tx_id,
1347 0x7d69650823557aab,
1348 fidl::encoding::DynamicFlags::empty(),
1349 )
1350 }
1351}
1352
1353#[must_use = "FIDL methods require a response to be sent"]
1354#[derive(Debug)]
1355pub struct EndpointSetLinkUpResponder {
1356 control_handle: std::mem::ManuallyDrop<EndpointControlHandle>,
1357 tx_id: u32,
1358}
1359
1360impl std::ops::Drop for EndpointSetLinkUpResponder {
1364 fn drop(&mut self) {
1365 self.control_handle.shutdown();
1366 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1368 }
1369}
1370
1371impl fidl::endpoints::Responder for EndpointSetLinkUpResponder {
1372 type ControlHandle = EndpointControlHandle;
1373
1374 fn control_handle(&self) -> &EndpointControlHandle {
1375 &self.control_handle
1376 }
1377
1378 fn drop_without_shutdown(mut self) {
1379 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1381 std::mem::forget(self);
1383 }
1384}
1385
1386impl EndpointSetLinkUpResponder {
1387 pub fn send(self) -> Result<(), fidl::Error> {
1391 let _result = self.send_raw();
1392 if _result.is_err() {
1393 self.control_handle.shutdown();
1394 }
1395 self.drop_without_shutdown();
1396 _result
1397 }
1398
1399 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
1401 let _result = self.send_raw();
1402 self.drop_without_shutdown();
1403 _result
1404 }
1405
1406 fn send_raw(&self) -> Result<(), fidl::Error> {
1407 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
1408 (),
1409 self.tx_id,
1410 0x4dde77de68d02e11,
1411 fidl::encoding::DynamicFlags::empty(),
1412 )
1413 }
1414}
1415
1416#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1417pub struct EndpointManagerMarker;
1418
1419impl fidl::endpoints::ProtocolMarker for EndpointManagerMarker {
1420 type Proxy = EndpointManagerProxy;
1421 type RequestStream = EndpointManagerRequestStream;
1422 #[cfg(target_os = "fuchsia")]
1423 type SynchronousProxy = EndpointManagerSynchronousProxy;
1424
1425 const DEBUG_NAME: &'static str = "(anonymous) EndpointManager";
1426}
1427
1428pub trait EndpointManagerProxyInterface: Send + Sync {
1429 type ListEndpointsResponseFut: std::future::Future<Output = Result<Vec<String>, fidl::Error>>
1430 + Send;
1431 fn r#list_endpoints(&self) -> Self::ListEndpointsResponseFut;
1432 type CreateEndpointResponseFut: std::future::Future<
1433 Output = Result<(i32, Option<fidl::endpoints::ClientEnd<EndpointMarker>>), fidl::Error>,
1434 > + Send;
1435 fn r#create_endpoint(
1436 &self,
1437 name: &str,
1438 config: &EndpointConfig,
1439 ) -> Self::CreateEndpointResponseFut;
1440 type GetEndpointResponseFut: std::future::Future<
1441 Output = Result<Option<fidl::endpoints::ClientEnd<EndpointMarker>>, fidl::Error>,
1442 > + Send;
1443 fn r#get_endpoint(&self, name: &str) -> Self::GetEndpointResponseFut;
1444}
1445#[derive(Debug)]
1446#[cfg(target_os = "fuchsia")]
1447pub struct EndpointManagerSynchronousProxy {
1448 client: fidl::client::sync::Client,
1449}
1450
1451#[cfg(target_os = "fuchsia")]
1452impl fidl::endpoints::SynchronousProxy for EndpointManagerSynchronousProxy {
1453 type Proxy = EndpointManagerProxy;
1454 type Protocol = EndpointManagerMarker;
1455
1456 fn from_channel(inner: fidl::Channel) -> Self {
1457 Self::new(inner)
1458 }
1459
1460 fn into_channel(self) -> fidl::Channel {
1461 self.client.into_channel()
1462 }
1463
1464 fn as_channel(&self) -> &fidl::Channel {
1465 self.client.as_channel()
1466 }
1467}
1468
1469#[cfg(target_os = "fuchsia")]
1470impl EndpointManagerSynchronousProxy {
1471 pub fn new(channel: fidl::Channel) -> Self {
1472 let protocol_name = <EndpointManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1473 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1474 }
1475
1476 pub fn into_channel(self) -> fidl::Channel {
1477 self.client.into_channel()
1478 }
1479
1480 pub fn wait_for_event(
1483 &self,
1484 deadline: zx::MonotonicInstant,
1485 ) -> Result<EndpointManagerEvent, fidl::Error> {
1486 EndpointManagerEvent::decode(self.client.wait_for_event(deadline)?)
1487 }
1488
1489 pub fn r#list_endpoints(
1491 &self,
1492 ___deadline: zx::MonotonicInstant,
1493 ) -> Result<Vec<String>, fidl::Error> {
1494 let _response = self
1495 .client
1496 .send_query::<fidl::encoding::EmptyPayload, EndpointManagerListEndpointsResponse>(
1497 (),
1498 0x78c83d9454e3d228,
1499 fidl::encoding::DynamicFlags::empty(),
1500 ___deadline,
1501 )?;
1502 Ok(_response.endp)
1503 }
1504
1505 pub fn r#create_endpoint(
1507 &self,
1508 mut name: &str,
1509 mut config: &EndpointConfig,
1510 ___deadline: zx::MonotonicInstant,
1511 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<EndpointMarker>>), fidl::Error> {
1512 let _response = self.client.send_query::<
1513 EndpointManagerCreateEndpointRequest,
1514 EndpointManagerCreateEndpointResponse,
1515 >(
1516 (name, config,),
1517 0x7defe4cd5e4e7d7c,
1518 fidl::encoding::DynamicFlags::empty(),
1519 ___deadline,
1520 )?;
1521 Ok((_response.status, _response.endpoint))
1522 }
1523
1524 pub fn r#get_endpoint(
1526 &self,
1527 mut name: &str,
1528 ___deadline: zx::MonotonicInstant,
1529 ) -> Result<Option<fidl::endpoints::ClientEnd<EndpointMarker>>, fidl::Error> {
1530 let _response = self
1531 .client
1532 .send_query::<EndpointManagerGetEndpointRequest, EndpointManagerGetEndpointResponse>(
1533 (name,),
1534 0x437e956b7b860751,
1535 fidl::encoding::DynamicFlags::empty(),
1536 ___deadline,
1537 )?;
1538 Ok(_response.endpoint)
1539 }
1540}
1541
1542#[cfg(target_os = "fuchsia")]
1543impl From<EndpointManagerSynchronousProxy> for zx::NullableHandle {
1544 fn from(value: EndpointManagerSynchronousProxy) -> Self {
1545 value.into_channel().into()
1546 }
1547}
1548
1549#[cfg(target_os = "fuchsia")]
1550impl From<fidl::Channel> for EndpointManagerSynchronousProxy {
1551 fn from(value: fidl::Channel) -> Self {
1552 Self::new(value)
1553 }
1554}
1555
1556#[cfg(target_os = "fuchsia")]
1557impl fidl::endpoints::FromClient for EndpointManagerSynchronousProxy {
1558 type Protocol = EndpointManagerMarker;
1559
1560 fn from_client(value: fidl::endpoints::ClientEnd<EndpointManagerMarker>) -> Self {
1561 Self::new(value.into_channel())
1562 }
1563}
1564
1565#[derive(Debug, Clone)]
1566pub struct EndpointManagerProxy {
1567 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1568}
1569
1570impl fidl::endpoints::Proxy for EndpointManagerProxy {
1571 type Protocol = EndpointManagerMarker;
1572
1573 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1574 Self::new(inner)
1575 }
1576
1577 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1578 self.client.into_channel().map_err(|client| Self { client })
1579 }
1580
1581 fn as_channel(&self) -> &::fidl::AsyncChannel {
1582 self.client.as_channel()
1583 }
1584}
1585
1586impl EndpointManagerProxy {
1587 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1589 let protocol_name = <EndpointManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1590 Self { client: fidl::client::Client::new(channel, protocol_name) }
1591 }
1592
1593 pub fn take_event_stream(&self) -> EndpointManagerEventStream {
1599 EndpointManagerEventStream { event_receiver: self.client.take_event_receiver() }
1600 }
1601
1602 pub fn r#list_endpoints(
1604 &self,
1605 ) -> fidl::client::QueryResponseFut<Vec<String>, fidl::encoding::DefaultFuchsiaResourceDialect>
1606 {
1607 EndpointManagerProxyInterface::r#list_endpoints(self)
1608 }
1609
1610 pub fn r#create_endpoint(
1612 &self,
1613 mut name: &str,
1614 mut config: &EndpointConfig,
1615 ) -> fidl::client::QueryResponseFut<
1616 (i32, Option<fidl::endpoints::ClientEnd<EndpointMarker>>),
1617 fidl::encoding::DefaultFuchsiaResourceDialect,
1618 > {
1619 EndpointManagerProxyInterface::r#create_endpoint(self, name, config)
1620 }
1621
1622 pub fn r#get_endpoint(
1624 &self,
1625 mut name: &str,
1626 ) -> fidl::client::QueryResponseFut<
1627 Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
1628 fidl::encoding::DefaultFuchsiaResourceDialect,
1629 > {
1630 EndpointManagerProxyInterface::r#get_endpoint(self, name)
1631 }
1632}
1633
1634impl EndpointManagerProxyInterface for EndpointManagerProxy {
1635 type ListEndpointsResponseFut =
1636 fidl::client::QueryResponseFut<Vec<String>, fidl::encoding::DefaultFuchsiaResourceDialect>;
1637 fn r#list_endpoints(&self) -> Self::ListEndpointsResponseFut {
1638 fn _decode(
1639 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1640 ) -> Result<Vec<String>, fidl::Error> {
1641 let _response = fidl::client::decode_transaction_body::<
1642 EndpointManagerListEndpointsResponse,
1643 fidl::encoding::DefaultFuchsiaResourceDialect,
1644 0x78c83d9454e3d228,
1645 >(_buf?)?;
1646 Ok(_response.endp)
1647 }
1648 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<String>>(
1649 (),
1650 0x78c83d9454e3d228,
1651 fidl::encoding::DynamicFlags::empty(),
1652 _decode,
1653 )
1654 }
1655
1656 type CreateEndpointResponseFut = fidl::client::QueryResponseFut<
1657 (i32, Option<fidl::endpoints::ClientEnd<EndpointMarker>>),
1658 fidl::encoding::DefaultFuchsiaResourceDialect,
1659 >;
1660 fn r#create_endpoint(
1661 &self,
1662 mut name: &str,
1663 mut config: &EndpointConfig,
1664 ) -> Self::CreateEndpointResponseFut {
1665 fn _decode(
1666 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1667 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<EndpointMarker>>), fidl::Error>
1668 {
1669 let _response = fidl::client::decode_transaction_body::<
1670 EndpointManagerCreateEndpointResponse,
1671 fidl::encoding::DefaultFuchsiaResourceDialect,
1672 0x7defe4cd5e4e7d7c,
1673 >(_buf?)?;
1674 Ok((_response.status, _response.endpoint))
1675 }
1676 self.client.send_query_and_decode::<
1677 EndpointManagerCreateEndpointRequest,
1678 (i32, Option<fidl::endpoints::ClientEnd<EndpointMarker>>),
1679 >(
1680 (name, config,),
1681 0x7defe4cd5e4e7d7c,
1682 fidl::encoding::DynamicFlags::empty(),
1683 _decode,
1684 )
1685 }
1686
1687 type GetEndpointResponseFut = fidl::client::QueryResponseFut<
1688 Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
1689 fidl::encoding::DefaultFuchsiaResourceDialect,
1690 >;
1691 fn r#get_endpoint(&self, mut name: &str) -> Self::GetEndpointResponseFut {
1692 fn _decode(
1693 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1694 ) -> Result<Option<fidl::endpoints::ClientEnd<EndpointMarker>>, fidl::Error> {
1695 let _response = fidl::client::decode_transaction_body::<
1696 EndpointManagerGetEndpointResponse,
1697 fidl::encoding::DefaultFuchsiaResourceDialect,
1698 0x437e956b7b860751,
1699 >(_buf?)?;
1700 Ok(_response.endpoint)
1701 }
1702 self.client.send_query_and_decode::<
1703 EndpointManagerGetEndpointRequest,
1704 Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
1705 >(
1706 (name,),
1707 0x437e956b7b860751,
1708 fidl::encoding::DynamicFlags::empty(),
1709 _decode,
1710 )
1711 }
1712}
1713
1714pub struct EndpointManagerEventStream {
1715 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1716}
1717
1718impl std::marker::Unpin for EndpointManagerEventStream {}
1719
1720impl futures::stream::FusedStream for EndpointManagerEventStream {
1721 fn is_terminated(&self) -> bool {
1722 self.event_receiver.is_terminated()
1723 }
1724}
1725
1726impl futures::Stream for EndpointManagerEventStream {
1727 type Item = Result<EndpointManagerEvent, fidl::Error>;
1728
1729 fn poll_next(
1730 mut self: std::pin::Pin<&mut Self>,
1731 cx: &mut std::task::Context<'_>,
1732 ) -> std::task::Poll<Option<Self::Item>> {
1733 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1734 &mut self.event_receiver,
1735 cx
1736 )?) {
1737 Some(buf) => std::task::Poll::Ready(Some(EndpointManagerEvent::decode(buf))),
1738 None => std::task::Poll::Ready(None),
1739 }
1740 }
1741}
1742
1743#[derive(Debug)]
1744pub enum EndpointManagerEvent {}
1745
1746impl EndpointManagerEvent {
1747 fn decode(
1749 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1750 ) -> Result<EndpointManagerEvent, fidl::Error> {
1751 let (bytes, _handles) = buf.split_mut();
1752 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1753 debug_assert_eq!(tx_header.tx_id, 0);
1754 match tx_header.ordinal {
1755 _ => Err(fidl::Error::UnknownOrdinal {
1756 ordinal: tx_header.ordinal,
1757 protocol_name:
1758 <EndpointManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1759 }),
1760 }
1761 }
1762}
1763
1764pub struct EndpointManagerRequestStream {
1766 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1767 is_terminated: bool,
1768}
1769
1770impl std::marker::Unpin for EndpointManagerRequestStream {}
1771
1772impl futures::stream::FusedStream for EndpointManagerRequestStream {
1773 fn is_terminated(&self) -> bool {
1774 self.is_terminated
1775 }
1776}
1777
1778impl fidl::endpoints::RequestStream for EndpointManagerRequestStream {
1779 type Protocol = EndpointManagerMarker;
1780 type ControlHandle = EndpointManagerControlHandle;
1781
1782 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1783 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1784 }
1785
1786 fn control_handle(&self) -> Self::ControlHandle {
1787 EndpointManagerControlHandle { inner: self.inner.clone() }
1788 }
1789
1790 fn into_inner(
1791 self,
1792 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1793 {
1794 (self.inner, self.is_terminated)
1795 }
1796
1797 fn from_inner(
1798 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1799 is_terminated: bool,
1800 ) -> Self {
1801 Self { inner, is_terminated }
1802 }
1803}
1804
1805impl futures::Stream for EndpointManagerRequestStream {
1806 type Item = Result<EndpointManagerRequest, fidl::Error>;
1807
1808 fn poll_next(
1809 mut self: std::pin::Pin<&mut Self>,
1810 cx: &mut std::task::Context<'_>,
1811 ) -> std::task::Poll<Option<Self::Item>> {
1812 let this = &mut *self;
1813 if this.inner.check_shutdown(cx) {
1814 this.is_terminated = true;
1815 return std::task::Poll::Ready(None);
1816 }
1817 if this.is_terminated {
1818 panic!("polled EndpointManagerRequestStream after completion");
1819 }
1820 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1821 |bytes, handles| {
1822 match this.inner.channel().read_etc(cx, bytes, handles) {
1823 std::task::Poll::Ready(Ok(())) => {}
1824 std::task::Poll::Pending => return std::task::Poll::Pending,
1825 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1826 this.is_terminated = true;
1827 return std::task::Poll::Ready(None);
1828 }
1829 std::task::Poll::Ready(Err(e)) => {
1830 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1831 e.into(),
1832 ))));
1833 }
1834 }
1835
1836 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1838
1839 std::task::Poll::Ready(Some(match header.ordinal {
1840 0x78c83d9454e3d228 => {
1841 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1842 let mut req = fidl::new_empty!(
1843 fidl::encoding::EmptyPayload,
1844 fidl::encoding::DefaultFuchsiaResourceDialect
1845 );
1846 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1847 let control_handle =
1848 EndpointManagerControlHandle { inner: this.inner.clone() };
1849 Ok(EndpointManagerRequest::ListEndpoints {
1850 responder: EndpointManagerListEndpointsResponder {
1851 control_handle: std::mem::ManuallyDrop::new(control_handle),
1852 tx_id: header.tx_id,
1853 },
1854 })
1855 }
1856 0x7defe4cd5e4e7d7c => {
1857 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1858 let mut req = fidl::new_empty!(
1859 EndpointManagerCreateEndpointRequest,
1860 fidl::encoding::DefaultFuchsiaResourceDialect
1861 );
1862 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<EndpointManagerCreateEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
1863 let control_handle =
1864 EndpointManagerControlHandle { inner: this.inner.clone() };
1865 Ok(EndpointManagerRequest::CreateEndpoint {
1866 name: req.name,
1867 config: req.config,
1868
1869 responder: EndpointManagerCreateEndpointResponder {
1870 control_handle: std::mem::ManuallyDrop::new(control_handle),
1871 tx_id: header.tx_id,
1872 },
1873 })
1874 }
1875 0x437e956b7b860751 => {
1876 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1877 let mut req = fidl::new_empty!(
1878 EndpointManagerGetEndpointRequest,
1879 fidl::encoding::DefaultFuchsiaResourceDialect
1880 );
1881 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<EndpointManagerGetEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
1882 let control_handle =
1883 EndpointManagerControlHandle { inner: this.inner.clone() };
1884 Ok(EndpointManagerRequest::GetEndpoint {
1885 name: req.name,
1886
1887 responder: EndpointManagerGetEndpointResponder {
1888 control_handle: std::mem::ManuallyDrop::new(control_handle),
1889 tx_id: header.tx_id,
1890 },
1891 })
1892 }
1893 _ => Err(fidl::Error::UnknownOrdinal {
1894 ordinal: header.ordinal,
1895 protocol_name:
1896 <EndpointManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1897 }),
1898 }))
1899 },
1900 )
1901 }
1902}
1903
1904#[derive(Debug)]
1906pub enum EndpointManagerRequest {
1907 ListEndpoints { responder: EndpointManagerListEndpointsResponder },
1909 CreateEndpoint {
1911 name: String,
1912 config: EndpointConfig,
1913 responder: EndpointManagerCreateEndpointResponder,
1914 },
1915 GetEndpoint { name: String, responder: EndpointManagerGetEndpointResponder },
1917}
1918
1919impl EndpointManagerRequest {
1920 #[allow(irrefutable_let_patterns)]
1921 pub fn into_list_endpoints(self) -> Option<(EndpointManagerListEndpointsResponder)> {
1922 if let EndpointManagerRequest::ListEndpoints { responder } = self {
1923 Some((responder))
1924 } else {
1925 None
1926 }
1927 }
1928
1929 #[allow(irrefutable_let_patterns)]
1930 pub fn into_create_endpoint(
1931 self,
1932 ) -> Option<(String, EndpointConfig, EndpointManagerCreateEndpointResponder)> {
1933 if let EndpointManagerRequest::CreateEndpoint { name, config, responder } = self {
1934 Some((name, config, responder))
1935 } else {
1936 None
1937 }
1938 }
1939
1940 #[allow(irrefutable_let_patterns)]
1941 pub fn into_get_endpoint(self) -> Option<(String, EndpointManagerGetEndpointResponder)> {
1942 if let EndpointManagerRequest::GetEndpoint { name, responder } = self {
1943 Some((name, responder))
1944 } else {
1945 None
1946 }
1947 }
1948
1949 pub fn method_name(&self) -> &'static str {
1951 match *self {
1952 EndpointManagerRequest::ListEndpoints { .. } => "list_endpoints",
1953 EndpointManagerRequest::CreateEndpoint { .. } => "create_endpoint",
1954 EndpointManagerRequest::GetEndpoint { .. } => "get_endpoint",
1955 }
1956 }
1957}
1958
1959#[derive(Debug, Clone)]
1960pub struct EndpointManagerControlHandle {
1961 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1962}
1963
1964impl fidl::endpoints::ControlHandle for EndpointManagerControlHandle {
1965 fn shutdown(&self) {
1966 self.inner.shutdown()
1967 }
1968
1969 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1970 self.inner.shutdown_with_epitaph(status)
1971 }
1972
1973 fn is_closed(&self) -> bool {
1974 self.inner.channel().is_closed()
1975 }
1976 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1977 self.inner.channel().on_closed()
1978 }
1979
1980 #[cfg(target_os = "fuchsia")]
1981 fn signal_peer(
1982 &self,
1983 clear_mask: zx::Signals,
1984 set_mask: zx::Signals,
1985 ) -> Result<(), zx_status::Status> {
1986 use fidl::Peered;
1987 self.inner.channel().signal_peer(clear_mask, set_mask)
1988 }
1989}
1990
1991impl EndpointManagerControlHandle {}
1992
1993#[must_use = "FIDL methods require a response to be sent"]
1994#[derive(Debug)]
1995pub struct EndpointManagerListEndpointsResponder {
1996 control_handle: std::mem::ManuallyDrop<EndpointManagerControlHandle>,
1997 tx_id: u32,
1998}
1999
2000impl std::ops::Drop for EndpointManagerListEndpointsResponder {
2004 fn drop(&mut self) {
2005 self.control_handle.shutdown();
2006 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2008 }
2009}
2010
2011impl fidl::endpoints::Responder for EndpointManagerListEndpointsResponder {
2012 type ControlHandle = EndpointManagerControlHandle;
2013
2014 fn control_handle(&self) -> &EndpointManagerControlHandle {
2015 &self.control_handle
2016 }
2017
2018 fn drop_without_shutdown(mut self) {
2019 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2021 std::mem::forget(self);
2023 }
2024}
2025
2026impl EndpointManagerListEndpointsResponder {
2027 pub fn send(self, mut endp: &[String]) -> Result<(), fidl::Error> {
2031 let _result = self.send_raw(endp);
2032 if _result.is_err() {
2033 self.control_handle.shutdown();
2034 }
2035 self.drop_without_shutdown();
2036 _result
2037 }
2038
2039 pub fn send_no_shutdown_on_err(self, mut endp: &[String]) -> Result<(), fidl::Error> {
2041 let _result = self.send_raw(endp);
2042 self.drop_without_shutdown();
2043 _result
2044 }
2045
2046 fn send_raw(&self, mut endp: &[String]) -> Result<(), fidl::Error> {
2047 self.control_handle.inner.send::<EndpointManagerListEndpointsResponse>(
2048 (endp,),
2049 self.tx_id,
2050 0x78c83d9454e3d228,
2051 fidl::encoding::DynamicFlags::empty(),
2052 )
2053 }
2054}
2055
2056#[must_use = "FIDL methods require a response to be sent"]
2057#[derive(Debug)]
2058pub struct EndpointManagerCreateEndpointResponder {
2059 control_handle: std::mem::ManuallyDrop<EndpointManagerControlHandle>,
2060 tx_id: u32,
2061}
2062
2063impl std::ops::Drop for EndpointManagerCreateEndpointResponder {
2067 fn drop(&mut self) {
2068 self.control_handle.shutdown();
2069 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2071 }
2072}
2073
2074impl fidl::endpoints::Responder for EndpointManagerCreateEndpointResponder {
2075 type ControlHandle = EndpointManagerControlHandle;
2076
2077 fn control_handle(&self) -> &EndpointManagerControlHandle {
2078 &self.control_handle
2079 }
2080
2081 fn drop_without_shutdown(mut self) {
2082 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2084 std::mem::forget(self);
2086 }
2087}
2088
2089impl EndpointManagerCreateEndpointResponder {
2090 pub fn send(
2094 self,
2095 mut status: i32,
2096 mut endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
2097 ) -> Result<(), fidl::Error> {
2098 let _result = self.send_raw(status, endpoint);
2099 if _result.is_err() {
2100 self.control_handle.shutdown();
2101 }
2102 self.drop_without_shutdown();
2103 _result
2104 }
2105
2106 pub fn send_no_shutdown_on_err(
2108 self,
2109 mut status: i32,
2110 mut endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
2111 ) -> Result<(), fidl::Error> {
2112 let _result = self.send_raw(status, endpoint);
2113 self.drop_without_shutdown();
2114 _result
2115 }
2116
2117 fn send_raw(
2118 &self,
2119 mut status: i32,
2120 mut endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
2121 ) -> Result<(), fidl::Error> {
2122 self.control_handle.inner.send::<EndpointManagerCreateEndpointResponse>(
2123 (status, endpoint),
2124 self.tx_id,
2125 0x7defe4cd5e4e7d7c,
2126 fidl::encoding::DynamicFlags::empty(),
2127 )
2128 }
2129}
2130
2131#[must_use = "FIDL methods require a response to be sent"]
2132#[derive(Debug)]
2133pub struct EndpointManagerGetEndpointResponder {
2134 control_handle: std::mem::ManuallyDrop<EndpointManagerControlHandle>,
2135 tx_id: u32,
2136}
2137
2138impl std::ops::Drop for EndpointManagerGetEndpointResponder {
2142 fn drop(&mut self) {
2143 self.control_handle.shutdown();
2144 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2146 }
2147}
2148
2149impl fidl::endpoints::Responder for EndpointManagerGetEndpointResponder {
2150 type ControlHandle = EndpointManagerControlHandle;
2151
2152 fn control_handle(&self) -> &EndpointManagerControlHandle {
2153 &self.control_handle
2154 }
2155
2156 fn drop_without_shutdown(mut self) {
2157 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2159 std::mem::forget(self);
2161 }
2162}
2163
2164impl EndpointManagerGetEndpointResponder {
2165 pub fn send(
2169 self,
2170 mut endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
2171 ) -> Result<(), fidl::Error> {
2172 let _result = self.send_raw(endpoint);
2173 if _result.is_err() {
2174 self.control_handle.shutdown();
2175 }
2176 self.drop_without_shutdown();
2177 _result
2178 }
2179
2180 pub fn send_no_shutdown_on_err(
2182 self,
2183 mut endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
2184 ) -> Result<(), fidl::Error> {
2185 let _result = self.send_raw(endpoint);
2186 self.drop_without_shutdown();
2187 _result
2188 }
2189
2190 fn send_raw(
2191 &self,
2192 mut endpoint: Option<fidl::endpoints::ClientEnd<EndpointMarker>>,
2193 ) -> Result<(), fidl::Error> {
2194 self.control_handle.inner.send::<EndpointManagerGetEndpointResponse>(
2195 (endpoint,),
2196 self.tx_id,
2197 0x437e956b7b860751,
2198 fidl::encoding::DynamicFlags::empty(),
2199 )
2200 }
2201}
2202
2203#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2204pub struct FakeEndpointMarker;
2205
2206impl fidl::endpoints::ProtocolMarker for FakeEndpointMarker {
2207 type Proxy = FakeEndpointProxy;
2208 type RequestStream = FakeEndpointRequestStream;
2209 #[cfg(target_os = "fuchsia")]
2210 type SynchronousProxy = FakeEndpointSynchronousProxy;
2211
2212 const DEBUG_NAME: &'static str = "(anonymous) FakeEndpoint";
2213}
2214
2215pub trait FakeEndpointProxyInterface: Send + Sync {
2216 type WriteResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
2217 fn r#write(&self, data: &[u8]) -> Self::WriteResponseFut;
2218 type ReadResponseFut: std::future::Future<Output = Result<(Vec<u8>, u64), fidl::Error>> + Send;
2219 fn r#read(&self) -> Self::ReadResponseFut;
2220}
2221#[derive(Debug)]
2222#[cfg(target_os = "fuchsia")]
2223pub struct FakeEndpointSynchronousProxy {
2224 client: fidl::client::sync::Client,
2225}
2226
2227#[cfg(target_os = "fuchsia")]
2228impl fidl::endpoints::SynchronousProxy for FakeEndpointSynchronousProxy {
2229 type Proxy = FakeEndpointProxy;
2230 type Protocol = FakeEndpointMarker;
2231
2232 fn from_channel(inner: fidl::Channel) -> Self {
2233 Self::new(inner)
2234 }
2235
2236 fn into_channel(self) -> fidl::Channel {
2237 self.client.into_channel()
2238 }
2239
2240 fn as_channel(&self) -> &fidl::Channel {
2241 self.client.as_channel()
2242 }
2243}
2244
2245#[cfg(target_os = "fuchsia")]
2246impl FakeEndpointSynchronousProxy {
2247 pub fn new(channel: fidl::Channel) -> Self {
2248 let protocol_name = <FakeEndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2249 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2250 }
2251
2252 pub fn into_channel(self) -> fidl::Channel {
2253 self.client.into_channel()
2254 }
2255
2256 pub fn wait_for_event(
2259 &self,
2260 deadline: zx::MonotonicInstant,
2261 ) -> Result<FakeEndpointEvent, fidl::Error> {
2262 FakeEndpointEvent::decode(self.client.wait_for_event(deadline)?)
2263 }
2264
2265 pub fn r#write(
2267 &self,
2268 mut data: &[u8],
2269 ___deadline: zx::MonotonicInstant,
2270 ) -> Result<(), fidl::Error> {
2271 let _response =
2272 self.client.send_query::<FakeEndpointWriteRequest, fidl::encoding::EmptyPayload>(
2273 (data,),
2274 0x2c54af94338c523b,
2275 fidl::encoding::DynamicFlags::empty(),
2276 ___deadline,
2277 )?;
2278 Ok(_response)
2279 }
2280
2281 pub fn r#read(&self, ___deadline: zx::MonotonicInstant) -> Result<(Vec<u8>, u64), fidl::Error> {
2290 let _response =
2291 self.client.send_query::<fidl::encoding::EmptyPayload, FakeEndpointReadResponse>(
2292 (),
2293 0x58e2d032a8f36234,
2294 fidl::encoding::DynamicFlags::empty(),
2295 ___deadline,
2296 )?;
2297 Ok((_response.data, _response.dropped_frames))
2298 }
2299}
2300
2301#[cfg(target_os = "fuchsia")]
2302impl From<FakeEndpointSynchronousProxy> for zx::NullableHandle {
2303 fn from(value: FakeEndpointSynchronousProxy) -> Self {
2304 value.into_channel().into()
2305 }
2306}
2307
2308#[cfg(target_os = "fuchsia")]
2309impl From<fidl::Channel> for FakeEndpointSynchronousProxy {
2310 fn from(value: fidl::Channel) -> Self {
2311 Self::new(value)
2312 }
2313}
2314
2315#[cfg(target_os = "fuchsia")]
2316impl fidl::endpoints::FromClient for FakeEndpointSynchronousProxy {
2317 type Protocol = FakeEndpointMarker;
2318
2319 fn from_client(value: fidl::endpoints::ClientEnd<FakeEndpointMarker>) -> Self {
2320 Self::new(value.into_channel())
2321 }
2322}
2323
2324#[derive(Debug, Clone)]
2325pub struct FakeEndpointProxy {
2326 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2327}
2328
2329impl fidl::endpoints::Proxy for FakeEndpointProxy {
2330 type Protocol = FakeEndpointMarker;
2331
2332 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2333 Self::new(inner)
2334 }
2335
2336 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2337 self.client.into_channel().map_err(|client| Self { client })
2338 }
2339
2340 fn as_channel(&self) -> &::fidl::AsyncChannel {
2341 self.client.as_channel()
2342 }
2343}
2344
2345impl FakeEndpointProxy {
2346 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2348 let protocol_name = <FakeEndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2349 Self { client: fidl::client::Client::new(channel, protocol_name) }
2350 }
2351
2352 pub fn take_event_stream(&self) -> FakeEndpointEventStream {
2358 FakeEndpointEventStream { event_receiver: self.client.take_event_receiver() }
2359 }
2360
2361 pub fn r#write(
2363 &self,
2364 mut data: &[u8],
2365 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
2366 FakeEndpointProxyInterface::r#write(self, data)
2367 }
2368
2369 pub fn r#read(
2378 &self,
2379 ) -> fidl::client::QueryResponseFut<(Vec<u8>, u64), fidl::encoding::DefaultFuchsiaResourceDialect>
2380 {
2381 FakeEndpointProxyInterface::r#read(self)
2382 }
2383}
2384
2385impl FakeEndpointProxyInterface for FakeEndpointProxy {
2386 type WriteResponseFut =
2387 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
2388 fn r#write(&self, mut data: &[u8]) -> Self::WriteResponseFut {
2389 fn _decode(
2390 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2391 ) -> Result<(), fidl::Error> {
2392 let _response = fidl::client::decode_transaction_body::<
2393 fidl::encoding::EmptyPayload,
2394 fidl::encoding::DefaultFuchsiaResourceDialect,
2395 0x2c54af94338c523b,
2396 >(_buf?)?;
2397 Ok(_response)
2398 }
2399 self.client.send_query_and_decode::<FakeEndpointWriteRequest, ()>(
2400 (data,),
2401 0x2c54af94338c523b,
2402 fidl::encoding::DynamicFlags::empty(),
2403 _decode,
2404 )
2405 }
2406
2407 type ReadResponseFut = fidl::client::QueryResponseFut<
2408 (Vec<u8>, u64),
2409 fidl::encoding::DefaultFuchsiaResourceDialect,
2410 >;
2411 fn r#read(&self) -> Self::ReadResponseFut {
2412 fn _decode(
2413 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2414 ) -> Result<(Vec<u8>, u64), fidl::Error> {
2415 let _response = fidl::client::decode_transaction_body::<
2416 FakeEndpointReadResponse,
2417 fidl::encoding::DefaultFuchsiaResourceDialect,
2418 0x58e2d032a8f36234,
2419 >(_buf?)?;
2420 Ok((_response.data, _response.dropped_frames))
2421 }
2422 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, (Vec<u8>, u64)>(
2423 (),
2424 0x58e2d032a8f36234,
2425 fidl::encoding::DynamicFlags::empty(),
2426 _decode,
2427 )
2428 }
2429}
2430
2431pub struct FakeEndpointEventStream {
2432 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2433}
2434
2435impl std::marker::Unpin for FakeEndpointEventStream {}
2436
2437impl futures::stream::FusedStream for FakeEndpointEventStream {
2438 fn is_terminated(&self) -> bool {
2439 self.event_receiver.is_terminated()
2440 }
2441}
2442
2443impl futures::Stream for FakeEndpointEventStream {
2444 type Item = Result<FakeEndpointEvent, fidl::Error>;
2445
2446 fn poll_next(
2447 mut self: std::pin::Pin<&mut Self>,
2448 cx: &mut std::task::Context<'_>,
2449 ) -> std::task::Poll<Option<Self::Item>> {
2450 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2451 &mut self.event_receiver,
2452 cx
2453 )?) {
2454 Some(buf) => std::task::Poll::Ready(Some(FakeEndpointEvent::decode(buf))),
2455 None => std::task::Poll::Ready(None),
2456 }
2457 }
2458}
2459
2460#[derive(Debug)]
2461pub enum FakeEndpointEvent {}
2462
2463impl FakeEndpointEvent {
2464 fn decode(
2466 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2467 ) -> Result<FakeEndpointEvent, fidl::Error> {
2468 let (bytes, _handles) = buf.split_mut();
2469 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2470 debug_assert_eq!(tx_header.tx_id, 0);
2471 match tx_header.ordinal {
2472 _ => Err(fidl::Error::UnknownOrdinal {
2473 ordinal: tx_header.ordinal,
2474 protocol_name: <FakeEndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2475 }),
2476 }
2477 }
2478}
2479
2480pub struct FakeEndpointRequestStream {
2482 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2483 is_terminated: bool,
2484}
2485
2486impl std::marker::Unpin for FakeEndpointRequestStream {}
2487
2488impl futures::stream::FusedStream for FakeEndpointRequestStream {
2489 fn is_terminated(&self) -> bool {
2490 self.is_terminated
2491 }
2492}
2493
2494impl fidl::endpoints::RequestStream for FakeEndpointRequestStream {
2495 type Protocol = FakeEndpointMarker;
2496 type ControlHandle = FakeEndpointControlHandle;
2497
2498 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2499 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2500 }
2501
2502 fn control_handle(&self) -> Self::ControlHandle {
2503 FakeEndpointControlHandle { inner: self.inner.clone() }
2504 }
2505
2506 fn into_inner(
2507 self,
2508 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2509 {
2510 (self.inner, self.is_terminated)
2511 }
2512
2513 fn from_inner(
2514 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2515 is_terminated: bool,
2516 ) -> Self {
2517 Self { inner, is_terminated }
2518 }
2519}
2520
2521impl futures::Stream for FakeEndpointRequestStream {
2522 type Item = Result<FakeEndpointRequest, fidl::Error>;
2523
2524 fn poll_next(
2525 mut self: std::pin::Pin<&mut Self>,
2526 cx: &mut std::task::Context<'_>,
2527 ) -> std::task::Poll<Option<Self::Item>> {
2528 let this = &mut *self;
2529 if this.inner.check_shutdown(cx) {
2530 this.is_terminated = true;
2531 return std::task::Poll::Ready(None);
2532 }
2533 if this.is_terminated {
2534 panic!("polled FakeEndpointRequestStream after completion");
2535 }
2536 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2537 |bytes, handles| {
2538 match this.inner.channel().read_etc(cx, bytes, handles) {
2539 std::task::Poll::Ready(Ok(())) => {}
2540 std::task::Poll::Pending => return std::task::Poll::Pending,
2541 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2542 this.is_terminated = true;
2543 return std::task::Poll::Ready(None);
2544 }
2545 std::task::Poll::Ready(Err(e)) => {
2546 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2547 e.into(),
2548 ))));
2549 }
2550 }
2551
2552 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2554
2555 std::task::Poll::Ready(Some(match header.ordinal {
2556 0x2c54af94338c523b => {
2557 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2558 let mut req = fidl::new_empty!(
2559 FakeEndpointWriteRequest,
2560 fidl::encoding::DefaultFuchsiaResourceDialect
2561 );
2562 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FakeEndpointWriteRequest>(&header, _body_bytes, handles, &mut req)?;
2563 let control_handle =
2564 FakeEndpointControlHandle { inner: this.inner.clone() };
2565 Ok(FakeEndpointRequest::Write {
2566 data: req.data,
2567
2568 responder: FakeEndpointWriteResponder {
2569 control_handle: std::mem::ManuallyDrop::new(control_handle),
2570 tx_id: header.tx_id,
2571 },
2572 })
2573 }
2574 0x58e2d032a8f36234 => {
2575 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2576 let mut req = fidl::new_empty!(
2577 fidl::encoding::EmptyPayload,
2578 fidl::encoding::DefaultFuchsiaResourceDialect
2579 );
2580 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2581 let control_handle =
2582 FakeEndpointControlHandle { inner: this.inner.clone() };
2583 Ok(FakeEndpointRequest::Read {
2584 responder: FakeEndpointReadResponder {
2585 control_handle: std::mem::ManuallyDrop::new(control_handle),
2586 tx_id: header.tx_id,
2587 },
2588 })
2589 }
2590 _ => Err(fidl::Error::UnknownOrdinal {
2591 ordinal: header.ordinal,
2592 protocol_name:
2593 <FakeEndpointMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2594 }),
2595 }))
2596 },
2597 )
2598 }
2599}
2600
2601#[derive(Debug)]
2603pub enum FakeEndpointRequest {
2604 Write { data: Vec<u8>, responder: FakeEndpointWriteResponder },
2606 Read { responder: FakeEndpointReadResponder },
2615}
2616
2617impl FakeEndpointRequest {
2618 #[allow(irrefutable_let_patterns)]
2619 pub fn into_write(self) -> Option<(Vec<u8>, FakeEndpointWriteResponder)> {
2620 if let FakeEndpointRequest::Write { data, responder } = self {
2621 Some((data, responder))
2622 } else {
2623 None
2624 }
2625 }
2626
2627 #[allow(irrefutable_let_patterns)]
2628 pub fn into_read(self) -> Option<(FakeEndpointReadResponder)> {
2629 if let FakeEndpointRequest::Read { responder } = self { Some((responder)) } else { None }
2630 }
2631
2632 pub fn method_name(&self) -> &'static str {
2634 match *self {
2635 FakeEndpointRequest::Write { .. } => "write",
2636 FakeEndpointRequest::Read { .. } => "read",
2637 }
2638 }
2639}
2640
2641#[derive(Debug, Clone)]
2642pub struct FakeEndpointControlHandle {
2643 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2644}
2645
2646impl fidl::endpoints::ControlHandle for FakeEndpointControlHandle {
2647 fn shutdown(&self) {
2648 self.inner.shutdown()
2649 }
2650
2651 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2652 self.inner.shutdown_with_epitaph(status)
2653 }
2654
2655 fn is_closed(&self) -> bool {
2656 self.inner.channel().is_closed()
2657 }
2658 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2659 self.inner.channel().on_closed()
2660 }
2661
2662 #[cfg(target_os = "fuchsia")]
2663 fn signal_peer(
2664 &self,
2665 clear_mask: zx::Signals,
2666 set_mask: zx::Signals,
2667 ) -> Result<(), zx_status::Status> {
2668 use fidl::Peered;
2669 self.inner.channel().signal_peer(clear_mask, set_mask)
2670 }
2671}
2672
2673impl FakeEndpointControlHandle {}
2674
2675#[must_use = "FIDL methods require a response to be sent"]
2676#[derive(Debug)]
2677pub struct FakeEndpointWriteResponder {
2678 control_handle: std::mem::ManuallyDrop<FakeEndpointControlHandle>,
2679 tx_id: u32,
2680}
2681
2682impl std::ops::Drop for FakeEndpointWriteResponder {
2686 fn drop(&mut self) {
2687 self.control_handle.shutdown();
2688 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2690 }
2691}
2692
2693impl fidl::endpoints::Responder for FakeEndpointWriteResponder {
2694 type ControlHandle = FakeEndpointControlHandle;
2695
2696 fn control_handle(&self) -> &FakeEndpointControlHandle {
2697 &self.control_handle
2698 }
2699
2700 fn drop_without_shutdown(mut self) {
2701 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2703 std::mem::forget(self);
2705 }
2706}
2707
2708impl FakeEndpointWriteResponder {
2709 pub fn send(self) -> Result<(), fidl::Error> {
2713 let _result = self.send_raw();
2714 if _result.is_err() {
2715 self.control_handle.shutdown();
2716 }
2717 self.drop_without_shutdown();
2718 _result
2719 }
2720
2721 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2723 let _result = self.send_raw();
2724 self.drop_without_shutdown();
2725 _result
2726 }
2727
2728 fn send_raw(&self) -> Result<(), fidl::Error> {
2729 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2730 (),
2731 self.tx_id,
2732 0x2c54af94338c523b,
2733 fidl::encoding::DynamicFlags::empty(),
2734 )
2735 }
2736}
2737
2738#[must_use = "FIDL methods require a response to be sent"]
2739#[derive(Debug)]
2740pub struct FakeEndpointReadResponder {
2741 control_handle: std::mem::ManuallyDrop<FakeEndpointControlHandle>,
2742 tx_id: u32,
2743}
2744
2745impl std::ops::Drop for FakeEndpointReadResponder {
2749 fn drop(&mut self) {
2750 self.control_handle.shutdown();
2751 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2753 }
2754}
2755
2756impl fidl::endpoints::Responder for FakeEndpointReadResponder {
2757 type ControlHandle = FakeEndpointControlHandle;
2758
2759 fn control_handle(&self) -> &FakeEndpointControlHandle {
2760 &self.control_handle
2761 }
2762
2763 fn drop_without_shutdown(mut self) {
2764 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2766 std::mem::forget(self);
2768 }
2769}
2770
2771impl FakeEndpointReadResponder {
2772 pub fn send(self, mut data: &[u8], mut dropped_frames: u64) -> Result<(), fidl::Error> {
2776 let _result = self.send_raw(data, dropped_frames);
2777 if _result.is_err() {
2778 self.control_handle.shutdown();
2779 }
2780 self.drop_without_shutdown();
2781 _result
2782 }
2783
2784 pub fn send_no_shutdown_on_err(
2786 self,
2787 mut data: &[u8],
2788 mut dropped_frames: u64,
2789 ) -> Result<(), fidl::Error> {
2790 let _result = self.send_raw(data, dropped_frames);
2791 self.drop_without_shutdown();
2792 _result
2793 }
2794
2795 fn send_raw(&self, mut data: &[u8], mut dropped_frames: u64) -> Result<(), fidl::Error> {
2796 self.control_handle.inner.send::<FakeEndpointReadResponse>(
2797 (data, dropped_frames),
2798 self.tx_id,
2799 0x58e2d032a8f36234,
2800 fidl::encoding::DynamicFlags::empty(),
2801 )
2802 }
2803}
2804
2805#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2806pub struct NetworkMarker;
2807
2808impl fidl::endpoints::ProtocolMarker for NetworkMarker {
2809 type Proxy = NetworkProxy;
2810 type RequestStream = NetworkRequestStream;
2811 #[cfg(target_os = "fuchsia")]
2812 type SynchronousProxy = NetworkSynchronousProxy;
2813
2814 const DEBUG_NAME: &'static str = "(anonymous) Network";
2815}
2816
2817pub trait NetworkProxyInterface: Send + Sync {
2818 fn r#add_port(
2819 &self,
2820 port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
2821 interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
2822 ) -> Result<(), fidl::Error>;
2823 type GetConfigResponseFut: std::future::Future<Output = Result<NetworkConfig, fidl::Error>>
2824 + Send;
2825 fn r#get_config(&self) -> Self::GetConfigResponseFut;
2826 type GetNameResponseFut: std::future::Future<Output = Result<String, fidl::Error>> + Send;
2827 fn r#get_name(&self) -> Self::GetNameResponseFut;
2828 type SetConfigResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2829 fn r#set_config(&self, config: &NetworkConfig) -> Self::SetConfigResponseFut;
2830 type AttachEndpointResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2831 fn r#attach_endpoint(&self, name: &str) -> Self::AttachEndpointResponseFut;
2832 type RemoveEndpointResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2833 fn r#remove_endpoint(&self, name: &str) -> Self::RemoveEndpointResponseFut;
2834 fn r#create_fake_endpoint(
2835 &self,
2836 ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
2837 ) -> Result<(), fidl::Error>;
2838 type StartCaptureResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2839 fn r#start_capture(&self, name: &str) -> Self::StartCaptureResponseFut;
2840 type StopCaptureResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
2841 fn r#stop_capture(&self) -> Self::StopCaptureResponseFut;
2842}
2843#[derive(Debug)]
2844#[cfg(target_os = "fuchsia")]
2845pub struct NetworkSynchronousProxy {
2846 client: fidl::client::sync::Client,
2847}
2848
2849#[cfg(target_os = "fuchsia")]
2850impl fidl::endpoints::SynchronousProxy for NetworkSynchronousProxy {
2851 type Proxy = NetworkProxy;
2852 type Protocol = NetworkMarker;
2853
2854 fn from_channel(inner: fidl::Channel) -> Self {
2855 Self::new(inner)
2856 }
2857
2858 fn into_channel(self) -> fidl::Channel {
2859 self.client.into_channel()
2860 }
2861
2862 fn as_channel(&self) -> &fidl::Channel {
2863 self.client.as_channel()
2864 }
2865}
2866
2867#[cfg(target_os = "fuchsia")]
2868impl NetworkSynchronousProxy {
2869 pub fn new(channel: fidl::Channel) -> Self {
2870 let protocol_name = <NetworkMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2871 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2872 }
2873
2874 pub fn into_channel(self) -> fidl::Channel {
2875 self.client.into_channel()
2876 }
2877
2878 pub fn wait_for_event(
2881 &self,
2882 deadline: zx::MonotonicInstant,
2883 ) -> Result<NetworkEvent, fidl::Error> {
2884 NetworkEvent::decode(self.client.wait_for_event(deadline)?)
2885 }
2886
2887 pub fn r#add_port(
2892 &self,
2893 mut port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
2894 mut interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
2895 ) -> Result<(), fidl::Error> {
2896 self.client.send::<fidl_fuchsia_net_virtualization::NetworkAddPortRequest>(
2897 (port, interface),
2898 0x7ad6a60c931a3f4e,
2899 fidl::encoding::DynamicFlags::empty(),
2900 )
2901 }
2902
2903 pub fn r#get_config(
2905 &self,
2906 ___deadline: zx::MonotonicInstant,
2907 ) -> Result<NetworkConfig, fidl::Error> {
2908 let _response =
2909 self.client.send_query::<fidl::encoding::EmptyPayload, NetworkGetConfigResponse>(
2910 (),
2911 0x8dc04557e2ab069,
2912 fidl::encoding::DynamicFlags::empty(),
2913 ___deadline,
2914 )?;
2915 Ok(_response.config)
2916 }
2917
2918 pub fn r#get_name(&self, ___deadline: zx::MonotonicInstant) -> Result<String, fidl::Error> {
2920 let _response =
2921 self.client.send_query::<fidl::encoding::EmptyPayload, NetworkGetNameResponse>(
2922 (),
2923 0x57b7701d1ffeedb1,
2924 fidl::encoding::DynamicFlags::empty(),
2925 ___deadline,
2926 )?;
2927 Ok(_response.name)
2928 }
2929
2930 pub fn r#set_config(
2932 &self,
2933 mut config: &NetworkConfig,
2934 ___deadline: zx::MonotonicInstant,
2935 ) -> Result<i32, fidl::Error> {
2936 let _response =
2937 self.client.send_query::<NetworkSetConfigRequest, NetworkSetConfigResponse>(
2938 (config,),
2939 0x18a490ee9d4bfa16,
2940 fidl::encoding::DynamicFlags::empty(),
2941 ___deadline,
2942 )?;
2943 Ok(_response.status)
2944 }
2945
2946 pub fn r#attach_endpoint(
2948 &self,
2949 mut name: &str,
2950 ___deadline: zx::MonotonicInstant,
2951 ) -> Result<i32, fidl::Error> {
2952 let _response =
2953 self.client.send_query::<NetworkAttachEndpointRequest, NetworkAttachEndpointResponse>(
2954 (name,),
2955 0x6e8ff8e9ea1b9a98,
2956 fidl::encoding::DynamicFlags::empty(),
2957 ___deadline,
2958 )?;
2959 Ok(_response.status)
2960 }
2961
2962 pub fn r#remove_endpoint(
2964 &self,
2965 mut name: &str,
2966 ___deadline: zx::MonotonicInstant,
2967 ) -> Result<i32, fidl::Error> {
2968 let _response =
2969 self.client.send_query::<NetworkRemoveEndpointRequest, NetworkRemoveEndpointResponse>(
2970 (name,),
2971 0x298eaac56bfcdd25,
2972 fidl::encoding::DynamicFlags::empty(),
2973 ___deadline,
2974 )?;
2975 Ok(_response.status)
2976 }
2977
2978 pub fn r#create_fake_endpoint(
2980 &self,
2981 mut ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
2982 ) -> Result<(), fidl::Error> {
2983 self.client.send::<NetworkCreateFakeEndpointRequest>(
2984 (ep,),
2985 0x3eb8f71b45e1e1f3,
2986 fidl::encoding::DynamicFlags::empty(),
2987 )
2988 }
2989
2990 pub fn r#start_capture(
2997 &self,
2998 mut name: &str,
2999 ___deadline: zx::MonotonicInstant,
3000 ) -> Result<i32, fidl::Error> {
3001 let _response =
3002 self.client.send_query::<NetworkStartCaptureRequest, NetworkStartCaptureResponse>(
3003 (name,),
3004 0x3ca44940622932c,
3005 fidl::encoding::DynamicFlags::empty(),
3006 ___deadline,
3007 )?;
3008 Ok(_response.status)
3009 }
3010
3011 pub fn r#stop_capture(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3017 let _response =
3018 self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
3019 (),
3020 0x1d7827adad109468,
3021 fidl::encoding::DynamicFlags::empty(),
3022 ___deadline,
3023 )?;
3024 Ok(_response)
3025 }
3026}
3027
3028#[cfg(target_os = "fuchsia")]
3029impl From<NetworkSynchronousProxy> for zx::NullableHandle {
3030 fn from(value: NetworkSynchronousProxy) -> Self {
3031 value.into_channel().into()
3032 }
3033}
3034
3035#[cfg(target_os = "fuchsia")]
3036impl From<fidl::Channel> for NetworkSynchronousProxy {
3037 fn from(value: fidl::Channel) -> Self {
3038 Self::new(value)
3039 }
3040}
3041
3042#[cfg(target_os = "fuchsia")]
3043impl fidl::endpoints::FromClient for NetworkSynchronousProxy {
3044 type Protocol = NetworkMarker;
3045
3046 fn from_client(value: fidl::endpoints::ClientEnd<NetworkMarker>) -> Self {
3047 Self::new(value.into_channel())
3048 }
3049}
3050
3051#[derive(Debug, Clone)]
3052pub struct NetworkProxy {
3053 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3054}
3055
3056impl fidl::endpoints::Proxy for NetworkProxy {
3057 type Protocol = NetworkMarker;
3058
3059 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3060 Self::new(inner)
3061 }
3062
3063 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3064 self.client.into_channel().map_err(|client| Self { client })
3065 }
3066
3067 fn as_channel(&self) -> &::fidl::AsyncChannel {
3068 self.client.as_channel()
3069 }
3070}
3071
3072impl NetworkProxy {
3073 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3075 let protocol_name = <NetworkMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3076 Self { client: fidl::client::Client::new(channel, protocol_name) }
3077 }
3078
3079 pub fn take_event_stream(&self) -> NetworkEventStream {
3085 NetworkEventStream { event_receiver: self.client.take_event_receiver() }
3086 }
3087
3088 pub fn r#add_port(
3093 &self,
3094 mut port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3095 mut interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3096 ) -> Result<(), fidl::Error> {
3097 NetworkProxyInterface::r#add_port(self, port, interface)
3098 }
3099
3100 pub fn r#get_config(
3102 &self,
3103 ) -> fidl::client::QueryResponseFut<NetworkConfig, fidl::encoding::DefaultFuchsiaResourceDialect>
3104 {
3105 NetworkProxyInterface::r#get_config(self)
3106 }
3107
3108 pub fn r#get_name(
3110 &self,
3111 ) -> fidl::client::QueryResponseFut<String, fidl::encoding::DefaultFuchsiaResourceDialect> {
3112 NetworkProxyInterface::r#get_name(self)
3113 }
3114
3115 pub fn r#set_config(
3117 &self,
3118 mut config: &NetworkConfig,
3119 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3120 NetworkProxyInterface::r#set_config(self, config)
3121 }
3122
3123 pub fn r#attach_endpoint(
3125 &self,
3126 mut name: &str,
3127 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3128 NetworkProxyInterface::r#attach_endpoint(self, name)
3129 }
3130
3131 pub fn r#remove_endpoint(
3133 &self,
3134 mut name: &str,
3135 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3136 NetworkProxyInterface::r#remove_endpoint(self, name)
3137 }
3138
3139 pub fn r#create_fake_endpoint(
3141 &self,
3142 mut ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
3143 ) -> Result<(), fidl::Error> {
3144 NetworkProxyInterface::r#create_fake_endpoint(self, ep)
3145 }
3146
3147 pub fn r#start_capture(
3154 &self,
3155 mut name: &str,
3156 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3157 NetworkProxyInterface::r#start_capture(self, name)
3158 }
3159
3160 pub fn r#stop_capture(
3166 &self,
3167 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3168 NetworkProxyInterface::r#stop_capture(self)
3169 }
3170}
3171
3172impl NetworkProxyInterface for NetworkProxy {
3173 fn r#add_port(
3174 &self,
3175 mut port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3176 mut interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3177 ) -> Result<(), fidl::Error> {
3178 self.client.send::<fidl_fuchsia_net_virtualization::NetworkAddPortRequest>(
3179 (port, interface),
3180 0x7ad6a60c931a3f4e,
3181 fidl::encoding::DynamicFlags::empty(),
3182 )
3183 }
3184
3185 type GetConfigResponseFut = fidl::client::QueryResponseFut<
3186 NetworkConfig,
3187 fidl::encoding::DefaultFuchsiaResourceDialect,
3188 >;
3189 fn r#get_config(&self) -> Self::GetConfigResponseFut {
3190 fn _decode(
3191 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3192 ) -> Result<NetworkConfig, fidl::Error> {
3193 let _response = fidl::client::decode_transaction_body::<
3194 NetworkGetConfigResponse,
3195 fidl::encoding::DefaultFuchsiaResourceDialect,
3196 0x8dc04557e2ab069,
3197 >(_buf?)?;
3198 Ok(_response.config)
3199 }
3200 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, NetworkConfig>(
3201 (),
3202 0x8dc04557e2ab069,
3203 fidl::encoding::DynamicFlags::empty(),
3204 _decode,
3205 )
3206 }
3207
3208 type GetNameResponseFut =
3209 fidl::client::QueryResponseFut<String, fidl::encoding::DefaultFuchsiaResourceDialect>;
3210 fn r#get_name(&self) -> Self::GetNameResponseFut {
3211 fn _decode(
3212 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3213 ) -> Result<String, fidl::Error> {
3214 let _response = fidl::client::decode_transaction_body::<
3215 NetworkGetNameResponse,
3216 fidl::encoding::DefaultFuchsiaResourceDialect,
3217 0x57b7701d1ffeedb1,
3218 >(_buf?)?;
3219 Ok(_response.name)
3220 }
3221 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, String>(
3222 (),
3223 0x57b7701d1ffeedb1,
3224 fidl::encoding::DynamicFlags::empty(),
3225 _decode,
3226 )
3227 }
3228
3229 type SetConfigResponseFut =
3230 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3231 fn r#set_config(&self, mut config: &NetworkConfig) -> Self::SetConfigResponseFut {
3232 fn _decode(
3233 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3234 ) -> Result<i32, fidl::Error> {
3235 let _response = fidl::client::decode_transaction_body::<
3236 NetworkSetConfigResponse,
3237 fidl::encoding::DefaultFuchsiaResourceDialect,
3238 0x18a490ee9d4bfa16,
3239 >(_buf?)?;
3240 Ok(_response.status)
3241 }
3242 self.client.send_query_and_decode::<NetworkSetConfigRequest, i32>(
3243 (config,),
3244 0x18a490ee9d4bfa16,
3245 fidl::encoding::DynamicFlags::empty(),
3246 _decode,
3247 )
3248 }
3249
3250 type AttachEndpointResponseFut =
3251 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3252 fn r#attach_endpoint(&self, mut name: &str) -> Self::AttachEndpointResponseFut {
3253 fn _decode(
3254 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3255 ) -> Result<i32, fidl::Error> {
3256 let _response = fidl::client::decode_transaction_body::<
3257 NetworkAttachEndpointResponse,
3258 fidl::encoding::DefaultFuchsiaResourceDialect,
3259 0x6e8ff8e9ea1b9a98,
3260 >(_buf?)?;
3261 Ok(_response.status)
3262 }
3263 self.client.send_query_and_decode::<NetworkAttachEndpointRequest, i32>(
3264 (name,),
3265 0x6e8ff8e9ea1b9a98,
3266 fidl::encoding::DynamicFlags::empty(),
3267 _decode,
3268 )
3269 }
3270
3271 type RemoveEndpointResponseFut =
3272 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3273 fn r#remove_endpoint(&self, mut name: &str) -> Self::RemoveEndpointResponseFut {
3274 fn _decode(
3275 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3276 ) -> Result<i32, fidl::Error> {
3277 let _response = fidl::client::decode_transaction_body::<
3278 NetworkRemoveEndpointResponse,
3279 fidl::encoding::DefaultFuchsiaResourceDialect,
3280 0x298eaac56bfcdd25,
3281 >(_buf?)?;
3282 Ok(_response.status)
3283 }
3284 self.client.send_query_and_decode::<NetworkRemoveEndpointRequest, i32>(
3285 (name,),
3286 0x298eaac56bfcdd25,
3287 fidl::encoding::DynamicFlags::empty(),
3288 _decode,
3289 )
3290 }
3291
3292 fn r#create_fake_endpoint(
3293 &self,
3294 mut ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
3295 ) -> Result<(), fidl::Error> {
3296 self.client.send::<NetworkCreateFakeEndpointRequest>(
3297 (ep,),
3298 0x3eb8f71b45e1e1f3,
3299 fidl::encoding::DynamicFlags::empty(),
3300 )
3301 }
3302
3303 type StartCaptureResponseFut =
3304 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3305 fn r#start_capture(&self, mut name: &str) -> Self::StartCaptureResponseFut {
3306 fn _decode(
3307 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3308 ) -> Result<i32, fidl::Error> {
3309 let _response = fidl::client::decode_transaction_body::<
3310 NetworkStartCaptureResponse,
3311 fidl::encoding::DefaultFuchsiaResourceDialect,
3312 0x3ca44940622932c,
3313 >(_buf?)?;
3314 Ok(_response.status)
3315 }
3316 self.client.send_query_and_decode::<NetworkStartCaptureRequest, i32>(
3317 (name,),
3318 0x3ca44940622932c,
3319 fidl::encoding::DynamicFlags::empty(),
3320 _decode,
3321 )
3322 }
3323
3324 type StopCaptureResponseFut =
3325 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3326 fn r#stop_capture(&self) -> Self::StopCaptureResponseFut {
3327 fn _decode(
3328 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3329 ) -> Result<(), fidl::Error> {
3330 let _response = fidl::client::decode_transaction_body::<
3331 fidl::encoding::EmptyPayload,
3332 fidl::encoding::DefaultFuchsiaResourceDialect,
3333 0x1d7827adad109468,
3334 >(_buf?)?;
3335 Ok(_response)
3336 }
3337 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3338 (),
3339 0x1d7827adad109468,
3340 fidl::encoding::DynamicFlags::empty(),
3341 _decode,
3342 )
3343 }
3344}
3345
3346pub struct NetworkEventStream {
3347 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3348}
3349
3350impl std::marker::Unpin for NetworkEventStream {}
3351
3352impl futures::stream::FusedStream for NetworkEventStream {
3353 fn is_terminated(&self) -> bool {
3354 self.event_receiver.is_terminated()
3355 }
3356}
3357
3358impl futures::Stream for NetworkEventStream {
3359 type Item = Result<NetworkEvent, fidl::Error>;
3360
3361 fn poll_next(
3362 mut self: std::pin::Pin<&mut Self>,
3363 cx: &mut std::task::Context<'_>,
3364 ) -> std::task::Poll<Option<Self::Item>> {
3365 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3366 &mut self.event_receiver,
3367 cx
3368 )?) {
3369 Some(buf) => std::task::Poll::Ready(Some(NetworkEvent::decode(buf))),
3370 None => std::task::Poll::Ready(None),
3371 }
3372 }
3373}
3374
3375#[derive(Debug)]
3376pub enum NetworkEvent {
3377 OnRemoved { reason: fidl_fuchsia_net_virtualization::NetworkRemovalReason },
3378}
3379
3380impl NetworkEvent {
3381 #[allow(irrefutable_let_patterns)]
3382 pub fn into_on_removed(self) -> Option<fidl_fuchsia_net_virtualization::NetworkRemovalReason> {
3383 if let NetworkEvent::OnRemoved { reason } = self { Some((reason)) } else { None }
3384 }
3385
3386 fn decode(
3388 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3389 ) -> Result<NetworkEvent, fidl::Error> {
3390 let (bytes, _handles) = buf.split_mut();
3391 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3392 debug_assert_eq!(tx_header.tx_id, 0);
3393 match tx_header.ordinal {
3394 0xfe80656d1e5ec4a => {
3395 let mut out = fidl::new_empty!(
3396 fidl_fuchsia_net_virtualization::NetworkOnRemovedRequest,
3397 fidl::encoding::DefaultFuchsiaResourceDialect
3398 );
3399 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_net_virtualization::NetworkOnRemovedRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
3400 Ok((NetworkEvent::OnRemoved { reason: out.reason }))
3401 }
3402 _ => Err(fidl::Error::UnknownOrdinal {
3403 ordinal: tx_header.ordinal,
3404 protocol_name: <NetworkMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3405 }),
3406 }
3407 }
3408}
3409
3410pub struct NetworkRequestStream {
3412 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3413 is_terminated: bool,
3414}
3415
3416impl std::marker::Unpin for NetworkRequestStream {}
3417
3418impl futures::stream::FusedStream for NetworkRequestStream {
3419 fn is_terminated(&self) -> bool {
3420 self.is_terminated
3421 }
3422}
3423
3424impl fidl::endpoints::RequestStream for NetworkRequestStream {
3425 type Protocol = NetworkMarker;
3426 type ControlHandle = NetworkControlHandle;
3427
3428 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3429 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3430 }
3431
3432 fn control_handle(&self) -> Self::ControlHandle {
3433 NetworkControlHandle { inner: self.inner.clone() }
3434 }
3435
3436 fn into_inner(
3437 self,
3438 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3439 {
3440 (self.inner, self.is_terminated)
3441 }
3442
3443 fn from_inner(
3444 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3445 is_terminated: bool,
3446 ) -> Self {
3447 Self { inner, is_terminated }
3448 }
3449}
3450
3451impl futures::Stream for NetworkRequestStream {
3452 type Item = Result<NetworkRequest, fidl::Error>;
3453
3454 fn poll_next(
3455 mut self: std::pin::Pin<&mut Self>,
3456 cx: &mut std::task::Context<'_>,
3457 ) -> std::task::Poll<Option<Self::Item>> {
3458 let this = &mut *self;
3459 if this.inner.check_shutdown(cx) {
3460 this.is_terminated = true;
3461 return std::task::Poll::Ready(None);
3462 }
3463 if this.is_terminated {
3464 panic!("polled NetworkRequestStream after completion");
3465 }
3466 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3467 |bytes, handles| {
3468 match this.inner.channel().read_etc(cx, bytes, handles) {
3469 std::task::Poll::Ready(Ok(())) => {}
3470 std::task::Poll::Pending => return std::task::Poll::Pending,
3471 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3472 this.is_terminated = true;
3473 return std::task::Poll::Ready(None);
3474 }
3475 std::task::Poll::Ready(Err(e)) => {
3476 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3477 e.into(),
3478 ))));
3479 }
3480 }
3481
3482 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3484
3485 std::task::Poll::Ready(Some(match header.ordinal {
3486 0x7ad6a60c931a3f4e => {
3487 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3488 let mut req = fidl::new_empty!(
3489 fidl_fuchsia_net_virtualization::NetworkAddPortRequest,
3490 fidl::encoding::DefaultFuchsiaResourceDialect
3491 );
3492 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_net_virtualization::NetworkAddPortRequest>(&header, _body_bytes, handles, &mut req)?;
3493 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3494 Ok(NetworkRequest::AddPort {
3495 port: req.port,
3496 interface: req.interface,
3497
3498 control_handle,
3499 })
3500 }
3501 0x8dc04557e2ab069 => {
3502 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3503 let mut req = fidl::new_empty!(
3504 fidl::encoding::EmptyPayload,
3505 fidl::encoding::DefaultFuchsiaResourceDialect
3506 );
3507 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3508 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3509 Ok(NetworkRequest::GetConfig {
3510 responder: NetworkGetConfigResponder {
3511 control_handle: std::mem::ManuallyDrop::new(control_handle),
3512 tx_id: header.tx_id,
3513 },
3514 })
3515 }
3516 0x57b7701d1ffeedb1 => {
3517 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3518 let mut req = fidl::new_empty!(
3519 fidl::encoding::EmptyPayload,
3520 fidl::encoding::DefaultFuchsiaResourceDialect
3521 );
3522 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3523 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3524 Ok(NetworkRequest::GetName {
3525 responder: NetworkGetNameResponder {
3526 control_handle: std::mem::ManuallyDrop::new(control_handle),
3527 tx_id: header.tx_id,
3528 },
3529 })
3530 }
3531 0x18a490ee9d4bfa16 => {
3532 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3533 let mut req = fidl::new_empty!(
3534 NetworkSetConfigRequest,
3535 fidl::encoding::DefaultFuchsiaResourceDialect
3536 );
3537 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkSetConfigRequest>(&header, _body_bytes, handles, &mut req)?;
3538 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3539 Ok(NetworkRequest::SetConfig {
3540 config: req.config,
3541
3542 responder: NetworkSetConfigResponder {
3543 control_handle: std::mem::ManuallyDrop::new(control_handle),
3544 tx_id: header.tx_id,
3545 },
3546 })
3547 }
3548 0x6e8ff8e9ea1b9a98 => {
3549 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3550 let mut req = fidl::new_empty!(
3551 NetworkAttachEndpointRequest,
3552 fidl::encoding::DefaultFuchsiaResourceDialect
3553 );
3554 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkAttachEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
3555 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3556 Ok(NetworkRequest::AttachEndpoint {
3557 name: req.name,
3558
3559 responder: NetworkAttachEndpointResponder {
3560 control_handle: std::mem::ManuallyDrop::new(control_handle),
3561 tx_id: header.tx_id,
3562 },
3563 })
3564 }
3565 0x298eaac56bfcdd25 => {
3566 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3567 let mut req = fidl::new_empty!(
3568 NetworkRemoveEndpointRequest,
3569 fidl::encoding::DefaultFuchsiaResourceDialect
3570 );
3571 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRemoveEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
3572 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3573 Ok(NetworkRequest::RemoveEndpoint {
3574 name: req.name,
3575
3576 responder: NetworkRemoveEndpointResponder {
3577 control_handle: std::mem::ManuallyDrop::new(control_handle),
3578 tx_id: header.tx_id,
3579 },
3580 })
3581 }
3582 0x3eb8f71b45e1e1f3 => {
3583 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3584 let mut req = fidl::new_empty!(
3585 NetworkCreateFakeEndpointRequest,
3586 fidl::encoding::DefaultFuchsiaResourceDialect
3587 );
3588 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkCreateFakeEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
3589 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3590 Ok(NetworkRequest::CreateFakeEndpoint { ep: req.ep, control_handle })
3591 }
3592 0x3ca44940622932c => {
3593 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3594 let mut req = fidl::new_empty!(
3595 NetworkStartCaptureRequest,
3596 fidl::encoding::DefaultFuchsiaResourceDialect
3597 );
3598 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkStartCaptureRequest>(&header, _body_bytes, handles, &mut req)?;
3599 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3600 Ok(NetworkRequest::StartCapture {
3601 name: req.name,
3602
3603 responder: NetworkStartCaptureResponder {
3604 control_handle: std::mem::ManuallyDrop::new(control_handle),
3605 tx_id: header.tx_id,
3606 },
3607 })
3608 }
3609 0x1d7827adad109468 => {
3610 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3611 let mut req = fidl::new_empty!(
3612 fidl::encoding::EmptyPayload,
3613 fidl::encoding::DefaultFuchsiaResourceDialect
3614 );
3615 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3616 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3617 Ok(NetworkRequest::StopCapture {
3618 responder: NetworkStopCaptureResponder {
3619 control_handle: std::mem::ManuallyDrop::new(control_handle),
3620 tx_id: header.tx_id,
3621 },
3622 })
3623 }
3624 _ => Err(fidl::Error::UnknownOrdinal {
3625 ordinal: header.ordinal,
3626 protocol_name:
3627 <NetworkMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3628 }),
3629 }))
3630 },
3631 )
3632 }
3633}
3634
3635#[derive(Debug)]
3637pub enum NetworkRequest {
3638 AddPort {
3643 port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3644 interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3645 control_handle: NetworkControlHandle,
3646 },
3647 GetConfig { responder: NetworkGetConfigResponder },
3649 GetName { responder: NetworkGetNameResponder },
3651 SetConfig { config: NetworkConfig, responder: NetworkSetConfigResponder },
3653 AttachEndpoint { name: String, responder: NetworkAttachEndpointResponder },
3655 RemoveEndpoint { name: String, responder: NetworkRemoveEndpointResponder },
3657 CreateFakeEndpoint {
3659 ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
3660 control_handle: NetworkControlHandle,
3661 },
3662 StartCapture { name: String, responder: NetworkStartCaptureResponder },
3669 StopCapture { responder: NetworkStopCaptureResponder },
3675}
3676
3677impl NetworkRequest {
3678 #[allow(irrefutable_let_patterns)]
3679 pub fn into_add_port(
3680 self,
3681 ) -> Option<(
3682 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3683 fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3684 NetworkControlHandle,
3685 )> {
3686 if let NetworkRequest::AddPort { port, interface, control_handle } = self {
3687 Some((port, interface, control_handle))
3688 } else {
3689 None
3690 }
3691 }
3692
3693 #[allow(irrefutable_let_patterns)]
3694 pub fn into_get_config(self) -> Option<(NetworkGetConfigResponder)> {
3695 if let NetworkRequest::GetConfig { responder } = self { Some((responder)) } else { None }
3696 }
3697
3698 #[allow(irrefutable_let_patterns)]
3699 pub fn into_get_name(self) -> Option<(NetworkGetNameResponder)> {
3700 if let NetworkRequest::GetName { responder } = self { Some((responder)) } else { None }
3701 }
3702
3703 #[allow(irrefutable_let_patterns)]
3704 pub fn into_set_config(self) -> Option<(NetworkConfig, NetworkSetConfigResponder)> {
3705 if let NetworkRequest::SetConfig { config, responder } = self {
3706 Some((config, responder))
3707 } else {
3708 None
3709 }
3710 }
3711
3712 #[allow(irrefutable_let_patterns)]
3713 pub fn into_attach_endpoint(self) -> Option<(String, NetworkAttachEndpointResponder)> {
3714 if let NetworkRequest::AttachEndpoint { name, responder } = self {
3715 Some((name, responder))
3716 } else {
3717 None
3718 }
3719 }
3720
3721 #[allow(irrefutable_let_patterns)]
3722 pub fn into_remove_endpoint(self) -> Option<(String, NetworkRemoveEndpointResponder)> {
3723 if let NetworkRequest::RemoveEndpoint { name, responder } = self {
3724 Some((name, responder))
3725 } else {
3726 None
3727 }
3728 }
3729
3730 #[allow(irrefutable_let_patterns)]
3731 pub fn into_create_fake_endpoint(
3732 self,
3733 ) -> Option<(fidl::endpoints::ServerEnd<FakeEndpointMarker>, NetworkControlHandle)> {
3734 if let NetworkRequest::CreateFakeEndpoint { ep, control_handle } = self {
3735 Some((ep, control_handle))
3736 } else {
3737 None
3738 }
3739 }
3740
3741 #[allow(irrefutable_let_patterns)]
3742 pub fn into_start_capture(self) -> Option<(String, NetworkStartCaptureResponder)> {
3743 if let NetworkRequest::StartCapture { name, responder } = self {
3744 Some((name, responder))
3745 } else {
3746 None
3747 }
3748 }
3749
3750 #[allow(irrefutable_let_patterns)]
3751 pub fn into_stop_capture(self) -> Option<(NetworkStopCaptureResponder)> {
3752 if let NetworkRequest::StopCapture { responder } = self { Some((responder)) } else { None }
3753 }
3754
3755 pub fn method_name(&self) -> &'static str {
3757 match *self {
3758 NetworkRequest::AddPort { .. } => "add_port",
3759 NetworkRequest::GetConfig { .. } => "get_config",
3760 NetworkRequest::GetName { .. } => "get_name",
3761 NetworkRequest::SetConfig { .. } => "set_config",
3762 NetworkRequest::AttachEndpoint { .. } => "attach_endpoint",
3763 NetworkRequest::RemoveEndpoint { .. } => "remove_endpoint",
3764 NetworkRequest::CreateFakeEndpoint { .. } => "create_fake_endpoint",
3765 NetworkRequest::StartCapture { .. } => "start_capture",
3766 NetworkRequest::StopCapture { .. } => "stop_capture",
3767 }
3768 }
3769}
3770
3771#[derive(Debug, Clone)]
3772pub struct NetworkControlHandle {
3773 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3774}
3775
3776impl fidl::endpoints::ControlHandle for NetworkControlHandle {
3777 fn shutdown(&self) {
3778 self.inner.shutdown()
3779 }
3780
3781 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
3782 self.inner.shutdown_with_epitaph(status)
3783 }
3784
3785 fn is_closed(&self) -> bool {
3786 self.inner.channel().is_closed()
3787 }
3788 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3789 self.inner.channel().on_closed()
3790 }
3791
3792 #[cfg(target_os = "fuchsia")]
3793 fn signal_peer(
3794 &self,
3795 clear_mask: zx::Signals,
3796 set_mask: zx::Signals,
3797 ) -> Result<(), zx_status::Status> {
3798 use fidl::Peered;
3799 self.inner.channel().signal_peer(clear_mask, set_mask)
3800 }
3801}
3802
3803impl NetworkControlHandle {
3804 pub fn send_on_removed(
3805 &self,
3806 mut reason: fidl_fuchsia_net_virtualization::NetworkRemovalReason,
3807 ) -> Result<(), fidl::Error> {
3808 self.inner.send::<fidl_fuchsia_net_virtualization::NetworkOnRemovedRequest>(
3809 (reason,),
3810 0,
3811 0xfe80656d1e5ec4a,
3812 fidl::encoding::DynamicFlags::empty(),
3813 )
3814 }
3815}
3816
3817#[must_use = "FIDL methods require a response to be sent"]
3818#[derive(Debug)]
3819pub struct NetworkGetConfigResponder {
3820 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
3821 tx_id: u32,
3822}
3823
3824impl std::ops::Drop for NetworkGetConfigResponder {
3828 fn drop(&mut self) {
3829 self.control_handle.shutdown();
3830 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3832 }
3833}
3834
3835impl fidl::endpoints::Responder for NetworkGetConfigResponder {
3836 type ControlHandle = NetworkControlHandle;
3837
3838 fn control_handle(&self) -> &NetworkControlHandle {
3839 &self.control_handle
3840 }
3841
3842 fn drop_without_shutdown(mut self) {
3843 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3845 std::mem::forget(self);
3847 }
3848}
3849
3850impl NetworkGetConfigResponder {
3851 pub fn send(self, mut config: &NetworkConfig) -> Result<(), fidl::Error> {
3855 let _result = self.send_raw(config);
3856 if _result.is_err() {
3857 self.control_handle.shutdown();
3858 }
3859 self.drop_without_shutdown();
3860 _result
3861 }
3862
3863 pub fn send_no_shutdown_on_err(self, mut config: &NetworkConfig) -> Result<(), fidl::Error> {
3865 let _result = self.send_raw(config);
3866 self.drop_without_shutdown();
3867 _result
3868 }
3869
3870 fn send_raw(&self, mut config: &NetworkConfig) -> Result<(), fidl::Error> {
3871 self.control_handle.inner.send::<NetworkGetConfigResponse>(
3872 (config,),
3873 self.tx_id,
3874 0x8dc04557e2ab069,
3875 fidl::encoding::DynamicFlags::empty(),
3876 )
3877 }
3878}
3879
3880#[must_use = "FIDL methods require a response to be sent"]
3881#[derive(Debug)]
3882pub struct NetworkGetNameResponder {
3883 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
3884 tx_id: u32,
3885}
3886
3887impl std::ops::Drop for NetworkGetNameResponder {
3891 fn drop(&mut self) {
3892 self.control_handle.shutdown();
3893 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3895 }
3896}
3897
3898impl fidl::endpoints::Responder for NetworkGetNameResponder {
3899 type ControlHandle = NetworkControlHandle;
3900
3901 fn control_handle(&self) -> &NetworkControlHandle {
3902 &self.control_handle
3903 }
3904
3905 fn drop_without_shutdown(mut self) {
3906 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3908 std::mem::forget(self);
3910 }
3911}
3912
3913impl NetworkGetNameResponder {
3914 pub fn send(self, mut name: &str) -> Result<(), fidl::Error> {
3918 let _result = self.send_raw(name);
3919 if _result.is_err() {
3920 self.control_handle.shutdown();
3921 }
3922 self.drop_without_shutdown();
3923 _result
3924 }
3925
3926 pub fn send_no_shutdown_on_err(self, mut name: &str) -> Result<(), fidl::Error> {
3928 let _result = self.send_raw(name);
3929 self.drop_without_shutdown();
3930 _result
3931 }
3932
3933 fn send_raw(&self, mut name: &str) -> Result<(), fidl::Error> {
3934 self.control_handle.inner.send::<NetworkGetNameResponse>(
3935 (name,),
3936 self.tx_id,
3937 0x57b7701d1ffeedb1,
3938 fidl::encoding::DynamicFlags::empty(),
3939 )
3940 }
3941}
3942
3943#[must_use = "FIDL methods require a response to be sent"]
3944#[derive(Debug)]
3945pub struct NetworkSetConfigResponder {
3946 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
3947 tx_id: u32,
3948}
3949
3950impl std::ops::Drop for NetworkSetConfigResponder {
3954 fn drop(&mut self) {
3955 self.control_handle.shutdown();
3956 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3958 }
3959}
3960
3961impl fidl::endpoints::Responder for NetworkSetConfigResponder {
3962 type ControlHandle = NetworkControlHandle;
3963
3964 fn control_handle(&self) -> &NetworkControlHandle {
3965 &self.control_handle
3966 }
3967
3968 fn drop_without_shutdown(mut self) {
3969 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3971 std::mem::forget(self);
3973 }
3974}
3975
3976impl NetworkSetConfigResponder {
3977 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
3981 let _result = self.send_raw(status);
3982 if _result.is_err() {
3983 self.control_handle.shutdown();
3984 }
3985 self.drop_without_shutdown();
3986 _result
3987 }
3988
3989 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
3991 let _result = self.send_raw(status);
3992 self.drop_without_shutdown();
3993 _result
3994 }
3995
3996 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
3997 self.control_handle.inner.send::<NetworkSetConfigResponse>(
3998 (status,),
3999 self.tx_id,
4000 0x18a490ee9d4bfa16,
4001 fidl::encoding::DynamicFlags::empty(),
4002 )
4003 }
4004}
4005
4006#[must_use = "FIDL methods require a response to be sent"]
4007#[derive(Debug)]
4008pub struct NetworkAttachEndpointResponder {
4009 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4010 tx_id: u32,
4011}
4012
4013impl std::ops::Drop for NetworkAttachEndpointResponder {
4017 fn drop(&mut self) {
4018 self.control_handle.shutdown();
4019 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4021 }
4022}
4023
4024impl fidl::endpoints::Responder for NetworkAttachEndpointResponder {
4025 type ControlHandle = NetworkControlHandle;
4026
4027 fn control_handle(&self) -> &NetworkControlHandle {
4028 &self.control_handle
4029 }
4030
4031 fn drop_without_shutdown(mut self) {
4032 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4034 std::mem::forget(self);
4036 }
4037}
4038
4039impl NetworkAttachEndpointResponder {
4040 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
4044 let _result = self.send_raw(status);
4045 if _result.is_err() {
4046 self.control_handle.shutdown();
4047 }
4048 self.drop_without_shutdown();
4049 _result
4050 }
4051
4052 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
4054 let _result = self.send_raw(status);
4055 self.drop_without_shutdown();
4056 _result
4057 }
4058
4059 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
4060 self.control_handle.inner.send::<NetworkAttachEndpointResponse>(
4061 (status,),
4062 self.tx_id,
4063 0x6e8ff8e9ea1b9a98,
4064 fidl::encoding::DynamicFlags::empty(),
4065 )
4066 }
4067}
4068
4069#[must_use = "FIDL methods require a response to be sent"]
4070#[derive(Debug)]
4071pub struct NetworkRemoveEndpointResponder {
4072 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4073 tx_id: u32,
4074}
4075
4076impl std::ops::Drop for NetworkRemoveEndpointResponder {
4080 fn drop(&mut self) {
4081 self.control_handle.shutdown();
4082 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4084 }
4085}
4086
4087impl fidl::endpoints::Responder for NetworkRemoveEndpointResponder {
4088 type ControlHandle = NetworkControlHandle;
4089
4090 fn control_handle(&self) -> &NetworkControlHandle {
4091 &self.control_handle
4092 }
4093
4094 fn drop_without_shutdown(mut self) {
4095 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4097 std::mem::forget(self);
4099 }
4100}
4101
4102impl NetworkRemoveEndpointResponder {
4103 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
4107 let _result = self.send_raw(status);
4108 if _result.is_err() {
4109 self.control_handle.shutdown();
4110 }
4111 self.drop_without_shutdown();
4112 _result
4113 }
4114
4115 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
4117 let _result = self.send_raw(status);
4118 self.drop_without_shutdown();
4119 _result
4120 }
4121
4122 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
4123 self.control_handle.inner.send::<NetworkRemoveEndpointResponse>(
4124 (status,),
4125 self.tx_id,
4126 0x298eaac56bfcdd25,
4127 fidl::encoding::DynamicFlags::empty(),
4128 )
4129 }
4130}
4131
4132#[must_use = "FIDL methods require a response to be sent"]
4133#[derive(Debug)]
4134pub struct NetworkStartCaptureResponder {
4135 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4136 tx_id: u32,
4137}
4138
4139impl std::ops::Drop for NetworkStartCaptureResponder {
4143 fn drop(&mut self) {
4144 self.control_handle.shutdown();
4145 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4147 }
4148}
4149
4150impl fidl::endpoints::Responder for NetworkStartCaptureResponder {
4151 type ControlHandle = NetworkControlHandle;
4152
4153 fn control_handle(&self) -> &NetworkControlHandle {
4154 &self.control_handle
4155 }
4156
4157 fn drop_without_shutdown(mut self) {
4158 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4160 std::mem::forget(self);
4162 }
4163}
4164
4165impl NetworkStartCaptureResponder {
4166 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
4170 let _result = self.send_raw(status);
4171 if _result.is_err() {
4172 self.control_handle.shutdown();
4173 }
4174 self.drop_without_shutdown();
4175 _result
4176 }
4177
4178 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
4180 let _result = self.send_raw(status);
4181 self.drop_without_shutdown();
4182 _result
4183 }
4184
4185 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
4186 self.control_handle.inner.send::<NetworkStartCaptureResponse>(
4187 (status,),
4188 self.tx_id,
4189 0x3ca44940622932c,
4190 fidl::encoding::DynamicFlags::empty(),
4191 )
4192 }
4193}
4194
4195#[must_use = "FIDL methods require a response to be sent"]
4196#[derive(Debug)]
4197pub struct NetworkStopCaptureResponder {
4198 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4199 tx_id: u32,
4200}
4201
4202impl std::ops::Drop for NetworkStopCaptureResponder {
4206 fn drop(&mut self) {
4207 self.control_handle.shutdown();
4208 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4210 }
4211}
4212
4213impl fidl::endpoints::Responder for NetworkStopCaptureResponder {
4214 type ControlHandle = NetworkControlHandle;
4215
4216 fn control_handle(&self) -> &NetworkControlHandle {
4217 &self.control_handle
4218 }
4219
4220 fn drop_without_shutdown(mut self) {
4221 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4223 std::mem::forget(self);
4225 }
4226}
4227
4228impl NetworkStopCaptureResponder {
4229 pub fn send(self) -> Result<(), fidl::Error> {
4233 let _result = self.send_raw();
4234 if _result.is_err() {
4235 self.control_handle.shutdown();
4236 }
4237 self.drop_without_shutdown();
4238 _result
4239 }
4240
4241 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4243 let _result = self.send_raw();
4244 self.drop_without_shutdown();
4245 _result
4246 }
4247
4248 fn send_raw(&self) -> Result<(), fidl::Error> {
4249 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4250 (),
4251 self.tx_id,
4252 0x1d7827adad109468,
4253 fidl::encoding::DynamicFlags::empty(),
4254 )
4255 }
4256}
4257
4258#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4259pub struct NetworkContextMarker;
4260
4261impl fidl::endpoints::ProtocolMarker for NetworkContextMarker {
4262 type Proxy = NetworkContextProxy;
4263 type RequestStream = NetworkContextRequestStream;
4264 #[cfg(target_os = "fuchsia")]
4265 type SynchronousProxy = NetworkContextSynchronousProxy;
4266
4267 const DEBUG_NAME: &'static str = "fuchsia.netemul.network.NetworkContext";
4268}
4269impl fidl::endpoints::DiscoverableProtocolMarker for NetworkContextMarker {}
4270
4271pub trait NetworkContextProxyInterface: Send + Sync {
4272 fn r#clone(
4273 &self,
4274 network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4275 ) -> Result<(), fidl::Error>;
4276 fn r#get_network_manager(
4277 &self,
4278 net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4279 ) -> Result<(), fidl::Error>;
4280 fn r#get_endpoint_manager(
4281 &self,
4282 endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4283 ) -> Result<(), fidl::Error>;
4284 type SetupResponseFut: std::future::Future<
4285 Output = Result<
4286 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4287 fidl::Error,
4288 >,
4289 > + Send;
4290 fn r#setup(&self, networks: &[NetworkSetup]) -> Self::SetupResponseFut;
4291}
4292#[derive(Debug)]
4293#[cfg(target_os = "fuchsia")]
4294pub struct NetworkContextSynchronousProxy {
4295 client: fidl::client::sync::Client,
4296}
4297
4298#[cfg(target_os = "fuchsia")]
4299impl fidl::endpoints::SynchronousProxy for NetworkContextSynchronousProxy {
4300 type Proxy = NetworkContextProxy;
4301 type Protocol = NetworkContextMarker;
4302
4303 fn from_channel(inner: fidl::Channel) -> Self {
4304 Self::new(inner)
4305 }
4306
4307 fn into_channel(self) -> fidl::Channel {
4308 self.client.into_channel()
4309 }
4310
4311 fn as_channel(&self) -> &fidl::Channel {
4312 self.client.as_channel()
4313 }
4314}
4315
4316#[cfg(target_os = "fuchsia")]
4317impl NetworkContextSynchronousProxy {
4318 pub fn new(channel: fidl::Channel) -> Self {
4319 let protocol_name = <NetworkContextMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4320 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
4321 }
4322
4323 pub fn into_channel(self) -> fidl::Channel {
4324 self.client.into_channel()
4325 }
4326
4327 pub fn wait_for_event(
4330 &self,
4331 deadline: zx::MonotonicInstant,
4332 ) -> Result<NetworkContextEvent, fidl::Error> {
4333 NetworkContextEvent::decode(self.client.wait_for_event(deadline)?)
4334 }
4335
4336 pub fn r#clone(
4337 &self,
4338 mut network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4339 ) -> Result<(), fidl::Error> {
4340 self.client.send::<NetworkContextCloneRequest>(
4341 (network_context,),
4342 0x1f7eb1b78a2ad2b0,
4343 fidl::encoding::DynamicFlags::empty(),
4344 )
4345 }
4346
4347 pub fn r#get_network_manager(
4348 &self,
4349 mut net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4350 ) -> Result<(), fidl::Error> {
4351 self.client.send::<NetworkContextGetNetworkManagerRequest>(
4352 (net_manager,),
4353 0x379899a30766afd4,
4354 fidl::encoding::DynamicFlags::empty(),
4355 )
4356 }
4357
4358 pub fn r#get_endpoint_manager(
4359 &self,
4360 mut endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4361 ) -> Result<(), fidl::Error> {
4362 self.client.send::<NetworkContextGetEndpointManagerRequest>(
4363 (endp_manager,),
4364 0x5e64360363b9bd81,
4365 fidl::encoding::DynamicFlags::empty(),
4366 )
4367 }
4368
4369 pub fn r#setup(
4374 &self,
4375 mut networks: &[NetworkSetup],
4376 ___deadline: zx::MonotonicInstant,
4377 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>), fidl::Error> {
4378 let _response =
4379 self.client.send_query::<NetworkContextSetupRequest, NetworkContextSetupResponse>(
4380 (networks,),
4381 0x1680e0b13823fc8c,
4382 fidl::encoding::DynamicFlags::empty(),
4383 ___deadline,
4384 )?;
4385 Ok((_response.status, _response.setup_handle))
4386 }
4387}
4388
4389#[cfg(target_os = "fuchsia")]
4390impl From<NetworkContextSynchronousProxy> for zx::NullableHandle {
4391 fn from(value: NetworkContextSynchronousProxy) -> Self {
4392 value.into_channel().into()
4393 }
4394}
4395
4396#[cfg(target_os = "fuchsia")]
4397impl From<fidl::Channel> for NetworkContextSynchronousProxy {
4398 fn from(value: fidl::Channel) -> Self {
4399 Self::new(value)
4400 }
4401}
4402
4403#[cfg(target_os = "fuchsia")]
4404impl fidl::endpoints::FromClient for NetworkContextSynchronousProxy {
4405 type Protocol = NetworkContextMarker;
4406
4407 fn from_client(value: fidl::endpoints::ClientEnd<NetworkContextMarker>) -> Self {
4408 Self::new(value.into_channel())
4409 }
4410}
4411
4412#[derive(Debug, Clone)]
4413pub struct NetworkContextProxy {
4414 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
4415}
4416
4417impl fidl::endpoints::Proxy for NetworkContextProxy {
4418 type Protocol = NetworkContextMarker;
4419
4420 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
4421 Self::new(inner)
4422 }
4423
4424 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
4425 self.client.into_channel().map_err(|client| Self { client })
4426 }
4427
4428 fn as_channel(&self) -> &::fidl::AsyncChannel {
4429 self.client.as_channel()
4430 }
4431}
4432
4433impl NetworkContextProxy {
4434 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
4436 let protocol_name = <NetworkContextMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4437 Self { client: fidl::client::Client::new(channel, protocol_name) }
4438 }
4439
4440 pub fn take_event_stream(&self) -> NetworkContextEventStream {
4446 NetworkContextEventStream { event_receiver: self.client.take_event_receiver() }
4447 }
4448
4449 pub fn r#clone(
4450 &self,
4451 mut network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4452 ) -> Result<(), fidl::Error> {
4453 NetworkContextProxyInterface::r#clone(self, network_context)
4454 }
4455
4456 pub fn r#get_network_manager(
4457 &self,
4458 mut net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4459 ) -> Result<(), fidl::Error> {
4460 NetworkContextProxyInterface::r#get_network_manager(self, net_manager)
4461 }
4462
4463 pub fn r#get_endpoint_manager(
4464 &self,
4465 mut endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4466 ) -> Result<(), fidl::Error> {
4467 NetworkContextProxyInterface::r#get_endpoint_manager(self, endp_manager)
4468 }
4469
4470 pub fn r#setup(
4475 &self,
4476 mut networks: &[NetworkSetup],
4477 ) -> fidl::client::QueryResponseFut<
4478 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4479 fidl::encoding::DefaultFuchsiaResourceDialect,
4480 > {
4481 NetworkContextProxyInterface::r#setup(self, networks)
4482 }
4483}
4484
4485impl NetworkContextProxyInterface for NetworkContextProxy {
4486 fn r#clone(
4487 &self,
4488 mut network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4489 ) -> Result<(), fidl::Error> {
4490 self.client.send::<NetworkContextCloneRequest>(
4491 (network_context,),
4492 0x1f7eb1b78a2ad2b0,
4493 fidl::encoding::DynamicFlags::empty(),
4494 )
4495 }
4496
4497 fn r#get_network_manager(
4498 &self,
4499 mut net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4500 ) -> Result<(), fidl::Error> {
4501 self.client.send::<NetworkContextGetNetworkManagerRequest>(
4502 (net_manager,),
4503 0x379899a30766afd4,
4504 fidl::encoding::DynamicFlags::empty(),
4505 )
4506 }
4507
4508 fn r#get_endpoint_manager(
4509 &self,
4510 mut endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4511 ) -> Result<(), fidl::Error> {
4512 self.client.send::<NetworkContextGetEndpointManagerRequest>(
4513 (endp_manager,),
4514 0x5e64360363b9bd81,
4515 fidl::encoding::DynamicFlags::empty(),
4516 )
4517 }
4518
4519 type SetupResponseFut = fidl::client::QueryResponseFut<
4520 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4521 fidl::encoding::DefaultFuchsiaResourceDialect,
4522 >;
4523 fn r#setup(&self, mut networks: &[NetworkSetup]) -> Self::SetupResponseFut {
4524 fn _decode(
4525 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4526 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>), fidl::Error>
4527 {
4528 let _response = fidl::client::decode_transaction_body::<
4529 NetworkContextSetupResponse,
4530 fidl::encoding::DefaultFuchsiaResourceDialect,
4531 0x1680e0b13823fc8c,
4532 >(_buf?)?;
4533 Ok((_response.status, _response.setup_handle))
4534 }
4535 self.client.send_query_and_decode::<
4536 NetworkContextSetupRequest,
4537 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4538 >(
4539 (networks,),
4540 0x1680e0b13823fc8c,
4541 fidl::encoding::DynamicFlags::empty(),
4542 _decode,
4543 )
4544 }
4545}
4546
4547pub struct NetworkContextEventStream {
4548 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
4549}
4550
4551impl std::marker::Unpin for NetworkContextEventStream {}
4552
4553impl futures::stream::FusedStream for NetworkContextEventStream {
4554 fn is_terminated(&self) -> bool {
4555 self.event_receiver.is_terminated()
4556 }
4557}
4558
4559impl futures::Stream for NetworkContextEventStream {
4560 type Item = Result<NetworkContextEvent, fidl::Error>;
4561
4562 fn poll_next(
4563 mut self: std::pin::Pin<&mut Self>,
4564 cx: &mut std::task::Context<'_>,
4565 ) -> std::task::Poll<Option<Self::Item>> {
4566 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4567 &mut self.event_receiver,
4568 cx
4569 )?) {
4570 Some(buf) => std::task::Poll::Ready(Some(NetworkContextEvent::decode(buf))),
4571 None => std::task::Poll::Ready(None),
4572 }
4573 }
4574}
4575
4576#[derive(Debug)]
4577pub enum NetworkContextEvent {}
4578
4579impl NetworkContextEvent {
4580 fn decode(
4582 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4583 ) -> Result<NetworkContextEvent, fidl::Error> {
4584 let (bytes, _handles) = buf.split_mut();
4585 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4586 debug_assert_eq!(tx_header.tx_id, 0);
4587 match tx_header.ordinal {
4588 _ => Err(fidl::Error::UnknownOrdinal {
4589 ordinal: tx_header.ordinal,
4590 protocol_name:
4591 <NetworkContextMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4592 }),
4593 }
4594 }
4595}
4596
4597pub struct NetworkContextRequestStream {
4599 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4600 is_terminated: bool,
4601}
4602
4603impl std::marker::Unpin for NetworkContextRequestStream {}
4604
4605impl futures::stream::FusedStream for NetworkContextRequestStream {
4606 fn is_terminated(&self) -> bool {
4607 self.is_terminated
4608 }
4609}
4610
4611impl fidl::endpoints::RequestStream for NetworkContextRequestStream {
4612 type Protocol = NetworkContextMarker;
4613 type ControlHandle = NetworkContextControlHandle;
4614
4615 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
4616 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4617 }
4618
4619 fn control_handle(&self) -> Self::ControlHandle {
4620 NetworkContextControlHandle { inner: self.inner.clone() }
4621 }
4622
4623 fn into_inner(
4624 self,
4625 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
4626 {
4627 (self.inner, self.is_terminated)
4628 }
4629
4630 fn from_inner(
4631 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4632 is_terminated: bool,
4633 ) -> Self {
4634 Self { inner, is_terminated }
4635 }
4636}
4637
4638impl futures::Stream for NetworkContextRequestStream {
4639 type Item = Result<NetworkContextRequest, fidl::Error>;
4640
4641 fn poll_next(
4642 mut self: std::pin::Pin<&mut Self>,
4643 cx: &mut std::task::Context<'_>,
4644 ) -> std::task::Poll<Option<Self::Item>> {
4645 let this = &mut *self;
4646 if this.inner.check_shutdown(cx) {
4647 this.is_terminated = true;
4648 return std::task::Poll::Ready(None);
4649 }
4650 if this.is_terminated {
4651 panic!("polled NetworkContextRequestStream after completion");
4652 }
4653 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
4654 |bytes, handles| {
4655 match this.inner.channel().read_etc(cx, bytes, handles) {
4656 std::task::Poll::Ready(Ok(())) => {}
4657 std::task::Poll::Pending => return std::task::Poll::Pending,
4658 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
4659 this.is_terminated = true;
4660 return std::task::Poll::Ready(None);
4661 }
4662 std::task::Poll::Ready(Err(e)) => {
4663 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4664 e.into(),
4665 ))));
4666 }
4667 }
4668
4669 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4671
4672 std::task::Poll::Ready(Some(match header.ordinal {
4673 0x1f7eb1b78a2ad2b0 => {
4674 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4675 let mut req = fidl::new_empty!(
4676 NetworkContextCloneRequest,
4677 fidl::encoding::DefaultFuchsiaResourceDialect
4678 );
4679 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextCloneRequest>(&header, _body_bytes, handles, &mut req)?;
4680 let control_handle =
4681 NetworkContextControlHandle { inner: this.inner.clone() };
4682 Ok(NetworkContextRequest::Clone {
4683 network_context: req.network_context,
4684
4685 control_handle,
4686 })
4687 }
4688 0x379899a30766afd4 => {
4689 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4690 let mut req = fidl::new_empty!(
4691 NetworkContextGetNetworkManagerRequest,
4692 fidl::encoding::DefaultFuchsiaResourceDialect
4693 );
4694 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextGetNetworkManagerRequest>(&header, _body_bytes, handles, &mut req)?;
4695 let control_handle =
4696 NetworkContextControlHandle { inner: this.inner.clone() };
4697 Ok(NetworkContextRequest::GetNetworkManager {
4698 net_manager: req.net_manager,
4699
4700 control_handle,
4701 })
4702 }
4703 0x5e64360363b9bd81 => {
4704 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4705 let mut req = fidl::new_empty!(
4706 NetworkContextGetEndpointManagerRequest,
4707 fidl::encoding::DefaultFuchsiaResourceDialect
4708 );
4709 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextGetEndpointManagerRequest>(&header, _body_bytes, handles, &mut req)?;
4710 let control_handle =
4711 NetworkContextControlHandle { inner: this.inner.clone() };
4712 Ok(NetworkContextRequest::GetEndpointManager {
4713 endp_manager: req.endp_manager,
4714
4715 control_handle,
4716 })
4717 }
4718 0x1680e0b13823fc8c => {
4719 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
4720 let mut req = fidl::new_empty!(
4721 NetworkContextSetupRequest,
4722 fidl::encoding::DefaultFuchsiaResourceDialect
4723 );
4724 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextSetupRequest>(&header, _body_bytes, handles, &mut req)?;
4725 let control_handle =
4726 NetworkContextControlHandle { inner: this.inner.clone() };
4727 Ok(NetworkContextRequest::Setup {
4728 networks: req.networks,
4729
4730 responder: NetworkContextSetupResponder {
4731 control_handle: std::mem::ManuallyDrop::new(control_handle),
4732 tx_id: header.tx_id,
4733 },
4734 })
4735 }
4736 _ => Err(fidl::Error::UnknownOrdinal {
4737 ordinal: header.ordinal,
4738 protocol_name:
4739 <NetworkContextMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4740 }),
4741 }))
4742 },
4743 )
4744 }
4745}
4746
4747#[derive(Debug)]
4753pub enum NetworkContextRequest {
4754 Clone {
4755 network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4756 control_handle: NetworkContextControlHandle,
4757 },
4758 GetNetworkManager {
4759 net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4760 control_handle: NetworkContextControlHandle,
4761 },
4762 GetEndpointManager {
4763 endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4764 control_handle: NetworkContextControlHandle,
4765 },
4766 Setup { networks: Vec<NetworkSetup>, responder: NetworkContextSetupResponder },
4771}
4772
4773impl NetworkContextRequest {
4774 #[allow(irrefutable_let_patterns)]
4775 pub fn into_clone(
4776 self,
4777 ) -> Option<(fidl::endpoints::ServerEnd<NetworkContextMarker>, NetworkContextControlHandle)>
4778 {
4779 if let NetworkContextRequest::Clone { network_context, control_handle } = self {
4780 Some((network_context, control_handle))
4781 } else {
4782 None
4783 }
4784 }
4785
4786 #[allow(irrefutable_let_patterns)]
4787 pub fn into_get_network_manager(
4788 self,
4789 ) -> Option<(fidl::endpoints::ServerEnd<NetworkManagerMarker>, NetworkContextControlHandle)>
4790 {
4791 if let NetworkContextRequest::GetNetworkManager { net_manager, control_handle } = self {
4792 Some((net_manager, control_handle))
4793 } else {
4794 None
4795 }
4796 }
4797
4798 #[allow(irrefutable_let_patterns)]
4799 pub fn into_get_endpoint_manager(
4800 self,
4801 ) -> Option<(fidl::endpoints::ServerEnd<EndpointManagerMarker>, NetworkContextControlHandle)>
4802 {
4803 if let NetworkContextRequest::GetEndpointManager { endp_manager, control_handle } = self {
4804 Some((endp_manager, control_handle))
4805 } else {
4806 None
4807 }
4808 }
4809
4810 #[allow(irrefutable_let_patterns)]
4811 pub fn into_setup(self) -> Option<(Vec<NetworkSetup>, NetworkContextSetupResponder)> {
4812 if let NetworkContextRequest::Setup { networks, responder } = self {
4813 Some((networks, responder))
4814 } else {
4815 None
4816 }
4817 }
4818
4819 pub fn method_name(&self) -> &'static str {
4821 match *self {
4822 NetworkContextRequest::Clone { .. } => "clone",
4823 NetworkContextRequest::GetNetworkManager { .. } => "get_network_manager",
4824 NetworkContextRequest::GetEndpointManager { .. } => "get_endpoint_manager",
4825 NetworkContextRequest::Setup { .. } => "setup",
4826 }
4827 }
4828}
4829
4830#[derive(Debug, Clone)]
4831pub struct NetworkContextControlHandle {
4832 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4833}
4834
4835impl fidl::endpoints::ControlHandle for NetworkContextControlHandle {
4836 fn shutdown(&self) {
4837 self.inner.shutdown()
4838 }
4839
4840 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4841 self.inner.shutdown_with_epitaph(status)
4842 }
4843
4844 fn is_closed(&self) -> bool {
4845 self.inner.channel().is_closed()
4846 }
4847 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4848 self.inner.channel().on_closed()
4849 }
4850
4851 #[cfg(target_os = "fuchsia")]
4852 fn signal_peer(
4853 &self,
4854 clear_mask: zx::Signals,
4855 set_mask: zx::Signals,
4856 ) -> Result<(), zx_status::Status> {
4857 use fidl::Peered;
4858 self.inner.channel().signal_peer(clear_mask, set_mask)
4859 }
4860}
4861
4862impl NetworkContextControlHandle {}
4863
4864#[must_use = "FIDL methods require a response to be sent"]
4865#[derive(Debug)]
4866pub struct NetworkContextSetupResponder {
4867 control_handle: std::mem::ManuallyDrop<NetworkContextControlHandle>,
4868 tx_id: u32,
4869}
4870
4871impl std::ops::Drop for NetworkContextSetupResponder {
4875 fn drop(&mut self) {
4876 self.control_handle.shutdown();
4877 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4879 }
4880}
4881
4882impl fidl::endpoints::Responder for NetworkContextSetupResponder {
4883 type ControlHandle = NetworkContextControlHandle;
4884
4885 fn control_handle(&self) -> &NetworkContextControlHandle {
4886 &self.control_handle
4887 }
4888
4889 fn drop_without_shutdown(mut self) {
4890 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4892 std::mem::forget(self);
4894 }
4895}
4896
4897impl NetworkContextSetupResponder {
4898 pub fn send(
4902 self,
4903 mut status: i32,
4904 mut setup_handle: Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
4905 ) -> Result<(), fidl::Error> {
4906 let _result = self.send_raw(status, setup_handle);
4907 if _result.is_err() {
4908 self.control_handle.shutdown();
4909 }
4910 self.drop_without_shutdown();
4911 _result
4912 }
4913
4914 pub fn send_no_shutdown_on_err(
4916 self,
4917 mut status: i32,
4918 mut setup_handle: Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
4919 ) -> Result<(), fidl::Error> {
4920 let _result = self.send_raw(status, setup_handle);
4921 self.drop_without_shutdown();
4922 _result
4923 }
4924
4925 fn send_raw(
4926 &self,
4927 mut status: i32,
4928 mut setup_handle: Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
4929 ) -> Result<(), fidl::Error> {
4930 self.control_handle.inner.send::<NetworkContextSetupResponse>(
4931 (status, setup_handle),
4932 self.tx_id,
4933 0x1680e0b13823fc8c,
4934 fidl::encoding::DynamicFlags::empty(),
4935 )
4936 }
4937}
4938
4939#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4940pub struct NetworkManagerMarker;
4941
4942impl fidl::endpoints::ProtocolMarker for NetworkManagerMarker {
4943 type Proxy = NetworkManagerProxy;
4944 type RequestStream = NetworkManagerRequestStream;
4945 #[cfg(target_os = "fuchsia")]
4946 type SynchronousProxy = NetworkManagerSynchronousProxy;
4947
4948 const DEBUG_NAME: &'static str = "(anonymous) NetworkManager";
4949}
4950
4951pub trait NetworkManagerProxyInterface: Send + Sync {
4952 type ListNetworksResponseFut: std::future::Future<Output = Result<Vec<String>, fidl::Error>>
4953 + Send;
4954 fn r#list_networks(&self) -> Self::ListNetworksResponseFut;
4955 type CreateNetworkResponseFut: std::future::Future<
4956 Output = Result<(i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>), fidl::Error>,
4957 > + Send;
4958 fn r#create_network(
4959 &self,
4960 name: &str,
4961 config: &NetworkConfig,
4962 ) -> Self::CreateNetworkResponseFut;
4963 type GetNetworkResponseFut: std::future::Future<
4964 Output = Result<Option<fidl::endpoints::ClientEnd<NetworkMarker>>, fidl::Error>,
4965 > + Send;
4966 fn r#get_network(&self, name: &str) -> Self::GetNetworkResponseFut;
4967}
4968#[derive(Debug)]
4969#[cfg(target_os = "fuchsia")]
4970pub struct NetworkManagerSynchronousProxy {
4971 client: fidl::client::sync::Client,
4972}
4973
4974#[cfg(target_os = "fuchsia")]
4975impl fidl::endpoints::SynchronousProxy for NetworkManagerSynchronousProxy {
4976 type Proxy = NetworkManagerProxy;
4977 type Protocol = NetworkManagerMarker;
4978
4979 fn from_channel(inner: fidl::Channel) -> Self {
4980 Self::new(inner)
4981 }
4982
4983 fn into_channel(self) -> fidl::Channel {
4984 self.client.into_channel()
4985 }
4986
4987 fn as_channel(&self) -> &fidl::Channel {
4988 self.client.as_channel()
4989 }
4990}
4991
4992#[cfg(target_os = "fuchsia")]
4993impl NetworkManagerSynchronousProxy {
4994 pub fn new(channel: fidl::Channel) -> Self {
4995 let protocol_name = <NetworkManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4996 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
4997 }
4998
4999 pub fn into_channel(self) -> fidl::Channel {
5000 self.client.into_channel()
5001 }
5002
5003 pub fn wait_for_event(
5006 &self,
5007 deadline: zx::MonotonicInstant,
5008 ) -> Result<NetworkManagerEvent, fidl::Error> {
5009 NetworkManagerEvent::decode(self.client.wait_for_event(deadline)?)
5010 }
5011
5012 pub fn r#list_networks(
5014 &self,
5015 ___deadline: zx::MonotonicInstant,
5016 ) -> Result<Vec<String>, fidl::Error> {
5017 let _response = self
5018 .client
5019 .send_query::<fidl::encoding::EmptyPayload, NetworkManagerListNetworksResponse>(
5020 (),
5021 0x2488653e0974cc62,
5022 fidl::encoding::DynamicFlags::empty(),
5023 ___deadline,
5024 )?;
5025 Ok(_response.nets)
5026 }
5027
5028 pub fn r#create_network(
5030 &self,
5031 mut name: &str,
5032 mut config: &NetworkConfig,
5033 ___deadline: zx::MonotonicInstant,
5034 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>), fidl::Error> {
5035 let _response = self
5036 .client
5037 .send_query::<NetworkManagerCreateNetworkRequest, NetworkManagerCreateNetworkResponse>(
5038 (name, config),
5039 0x6052eb5ac709af,
5040 fidl::encoding::DynamicFlags::empty(),
5041 ___deadline,
5042 )?;
5043 Ok((_response.status, _response.net))
5044 }
5045
5046 pub fn r#get_network(
5048 &self,
5049 mut name: &str,
5050 ___deadline: zx::MonotonicInstant,
5051 ) -> Result<Option<fidl::endpoints::ClientEnd<NetworkMarker>>, fidl::Error> {
5052 let _response = self
5053 .client
5054 .send_query::<NetworkManagerGetNetworkRequest, NetworkManagerGetNetworkResponse>(
5055 (name,),
5056 0x59930bf23acc7d9a,
5057 fidl::encoding::DynamicFlags::empty(),
5058 ___deadline,
5059 )?;
5060 Ok(_response.net)
5061 }
5062}
5063
5064#[cfg(target_os = "fuchsia")]
5065impl From<NetworkManagerSynchronousProxy> for zx::NullableHandle {
5066 fn from(value: NetworkManagerSynchronousProxy) -> Self {
5067 value.into_channel().into()
5068 }
5069}
5070
5071#[cfg(target_os = "fuchsia")]
5072impl From<fidl::Channel> for NetworkManagerSynchronousProxy {
5073 fn from(value: fidl::Channel) -> Self {
5074 Self::new(value)
5075 }
5076}
5077
5078#[cfg(target_os = "fuchsia")]
5079impl fidl::endpoints::FromClient for NetworkManagerSynchronousProxy {
5080 type Protocol = NetworkManagerMarker;
5081
5082 fn from_client(value: fidl::endpoints::ClientEnd<NetworkManagerMarker>) -> Self {
5083 Self::new(value.into_channel())
5084 }
5085}
5086
5087#[derive(Debug, Clone)]
5088pub struct NetworkManagerProxy {
5089 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5090}
5091
5092impl fidl::endpoints::Proxy for NetworkManagerProxy {
5093 type Protocol = NetworkManagerMarker;
5094
5095 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5096 Self::new(inner)
5097 }
5098
5099 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5100 self.client.into_channel().map_err(|client| Self { client })
5101 }
5102
5103 fn as_channel(&self) -> &::fidl::AsyncChannel {
5104 self.client.as_channel()
5105 }
5106}
5107
5108impl NetworkManagerProxy {
5109 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5111 let protocol_name = <NetworkManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5112 Self { client: fidl::client::Client::new(channel, protocol_name) }
5113 }
5114
5115 pub fn take_event_stream(&self) -> NetworkManagerEventStream {
5121 NetworkManagerEventStream { event_receiver: self.client.take_event_receiver() }
5122 }
5123
5124 pub fn r#list_networks(
5126 &self,
5127 ) -> fidl::client::QueryResponseFut<Vec<String>, fidl::encoding::DefaultFuchsiaResourceDialect>
5128 {
5129 NetworkManagerProxyInterface::r#list_networks(self)
5130 }
5131
5132 pub fn r#create_network(
5134 &self,
5135 mut name: &str,
5136 mut config: &NetworkConfig,
5137 ) -> fidl::client::QueryResponseFut<
5138 (i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>),
5139 fidl::encoding::DefaultFuchsiaResourceDialect,
5140 > {
5141 NetworkManagerProxyInterface::r#create_network(self, name, config)
5142 }
5143
5144 pub fn r#get_network(
5146 &self,
5147 mut name: &str,
5148 ) -> fidl::client::QueryResponseFut<
5149 Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5150 fidl::encoding::DefaultFuchsiaResourceDialect,
5151 > {
5152 NetworkManagerProxyInterface::r#get_network(self, name)
5153 }
5154}
5155
5156impl NetworkManagerProxyInterface for NetworkManagerProxy {
5157 type ListNetworksResponseFut =
5158 fidl::client::QueryResponseFut<Vec<String>, fidl::encoding::DefaultFuchsiaResourceDialect>;
5159 fn r#list_networks(&self) -> Self::ListNetworksResponseFut {
5160 fn _decode(
5161 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5162 ) -> Result<Vec<String>, fidl::Error> {
5163 let _response = fidl::client::decode_transaction_body::<
5164 NetworkManagerListNetworksResponse,
5165 fidl::encoding::DefaultFuchsiaResourceDialect,
5166 0x2488653e0974cc62,
5167 >(_buf?)?;
5168 Ok(_response.nets)
5169 }
5170 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<String>>(
5171 (),
5172 0x2488653e0974cc62,
5173 fidl::encoding::DynamicFlags::empty(),
5174 _decode,
5175 )
5176 }
5177
5178 type CreateNetworkResponseFut = fidl::client::QueryResponseFut<
5179 (i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>),
5180 fidl::encoding::DefaultFuchsiaResourceDialect,
5181 >;
5182 fn r#create_network(
5183 &self,
5184 mut name: &str,
5185 mut config: &NetworkConfig,
5186 ) -> Self::CreateNetworkResponseFut {
5187 fn _decode(
5188 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5189 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>), fidl::Error> {
5190 let _response = fidl::client::decode_transaction_body::<
5191 NetworkManagerCreateNetworkResponse,
5192 fidl::encoding::DefaultFuchsiaResourceDialect,
5193 0x6052eb5ac709af,
5194 >(_buf?)?;
5195 Ok((_response.status, _response.net))
5196 }
5197 self.client.send_query_and_decode::<
5198 NetworkManagerCreateNetworkRequest,
5199 (i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>),
5200 >(
5201 (name, config,),
5202 0x6052eb5ac709af,
5203 fidl::encoding::DynamicFlags::empty(),
5204 _decode,
5205 )
5206 }
5207
5208 type GetNetworkResponseFut = fidl::client::QueryResponseFut<
5209 Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5210 fidl::encoding::DefaultFuchsiaResourceDialect,
5211 >;
5212 fn r#get_network(&self, mut name: &str) -> Self::GetNetworkResponseFut {
5213 fn _decode(
5214 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5215 ) -> Result<Option<fidl::endpoints::ClientEnd<NetworkMarker>>, fidl::Error> {
5216 let _response = fidl::client::decode_transaction_body::<
5217 NetworkManagerGetNetworkResponse,
5218 fidl::encoding::DefaultFuchsiaResourceDialect,
5219 0x59930bf23acc7d9a,
5220 >(_buf?)?;
5221 Ok(_response.net)
5222 }
5223 self.client.send_query_and_decode::<
5224 NetworkManagerGetNetworkRequest,
5225 Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5226 >(
5227 (name,),
5228 0x59930bf23acc7d9a,
5229 fidl::encoding::DynamicFlags::empty(),
5230 _decode,
5231 )
5232 }
5233}
5234
5235pub struct NetworkManagerEventStream {
5236 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5237}
5238
5239impl std::marker::Unpin for NetworkManagerEventStream {}
5240
5241impl futures::stream::FusedStream for NetworkManagerEventStream {
5242 fn is_terminated(&self) -> bool {
5243 self.event_receiver.is_terminated()
5244 }
5245}
5246
5247impl futures::Stream for NetworkManagerEventStream {
5248 type Item = Result<NetworkManagerEvent, fidl::Error>;
5249
5250 fn poll_next(
5251 mut self: std::pin::Pin<&mut Self>,
5252 cx: &mut std::task::Context<'_>,
5253 ) -> std::task::Poll<Option<Self::Item>> {
5254 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5255 &mut self.event_receiver,
5256 cx
5257 )?) {
5258 Some(buf) => std::task::Poll::Ready(Some(NetworkManagerEvent::decode(buf))),
5259 None => std::task::Poll::Ready(None),
5260 }
5261 }
5262}
5263
5264#[derive(Debug)]
5265pub enum NetworkManagerEvent {}
5266
5267impl NetworkManagerEvent {
5268 fn decode(
5270 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5271 ) -> Result<NetworkManagerEvent, fidl::Error> {
5272 let (bytes, _handles) = buf.split_mut();
5273 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5274 debug_assert_eq!(tx_header.tx_id, 0);
5275 match tx_header.ordinal {
5276 _ => Err(fidl::Error::UnknownOrdinal {
5277 ordinal: tx_header.ordinal,
5278 protocol_name:
5279 <NetworkManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5280 }),
5281 }
5282 }
5283}
5284
5285pub struct NetworkManagerRequestStream {
5287 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5288 is_terminated: bool,
5289}
5290
5291impl std::marker::Unpin for NetworkManagerRequestStream {}
5292
5293impl futures::stream::FusedStream for NetworkManagerRequestStream {
5294 fn is_terminated(&self) -> bool {
5295 self.is_terminated
5296 }
5297}
5298
5299impl fidl::endpoints::RequestStream for NetworkManagerRequestStream {
5300 type Protocol = NetworkManagerMarker;
5301 type ControlHandle = NetworkManagerControlHandle;
5302
5303 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5304 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5305 }
5306
5307 fn control_handle(&self) -> Self::ControlHandle {
5308 NetworkManagerControlHandle { inner: self.inner.clone() }
5309 }
5310
5311 fn into_inner(
5312 self,
5313 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5314 {
5315 (self.inner, self.is_terminated)
5316 }
5317
5318 fn from_inner(
5319 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5320 is_terminated: bool,
5321 ) -> Self {
5322 Self { inner, is_terminated }
5323 }
5324}
5325
5326impl futures::Stream for NetworkManagerRequestStream {
5327 type Item = Result<NetworkManagerRequest, fidl::Error>;
5328
5329 fn poll_next(
5330 mut self: std::pin::Pin<&mut Self>,
5331 cx: &mut std::task::Context<'_>,
5332 ) -> std::task::Poll<Option<Self::Item>> {
5333 let this = &mut *self;
5334 if this.inner.check_shutdown(cx) {
5335 this.is_terminated = true;
5336 return std::task::Poll::Ready(None);
5337 }
5338 if this.is_terminated {
5339 panic!("polled NetworkManagerRequestStream after completion");
5340 }
5341 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
5342 |bytes, handles| {
5343 match this.inner.channel().read_etc(cx, bytes, handles) {
5344 std::task::Poll::Ready(Ok(())) => {}
5345 std::task::Poll::Pending => return std::task::Poll::Pending,
5346 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
5347 this.is_terminated = true;
5348 return std::task::Poll::Ready(None);
5349 }
5350 std::task::Poll::Ready(Err(e)) => {
5351 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5352 e.into(),
5353 ))));
5354 }
5355 }
5356
5357 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5359
5360 std::task::Poll::Ready(Some(match header.ordinal {
5361 0x2488653e0974cc62 => {
5362 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5363 let mut req = fidl::new_empty!(
5364 fidl::encoding::EmptyPayload,
5365 fidl::encoding::DefaultFuchsiaResourceDialect
5366 );
5367 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5368 let control_handle =
5369 NetworkManagerControlHandle { inner: this.inner.clone() };
5370 Ok(NetworkManagerRequest::ListNetworks {
5371 responder: NetworkManagerListNetworksResponder {
5372 control_handle: std::mem::ManuallyDrop::new(control_handle),
5373 tx_id: header.tx_id,
5374 },
5375 })
5376 }
5377 0x6052eb5ac709af => {
5378 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5379 let mut req = fidl::new_empty!(
5380 NetworkManagerCreateNetworkRequest,
5381 fidl::encoding::DefaultFuchsiaResourceDialect
5382 );
5383 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkManagerCreateNetworkRequest>(&header, _body_bytes, handles, &mut req)?;
5384 let control_handle =
5385 NetworkManagerControlHandle { inner: this.inner.clone() };
5386 Ok(NetworkManagerRequest::CreateNetwork {
5387 name: req.name,
5388 config: req.config,
5389
5390 responder: NetworkManagerCreateNetworkResponder {
5391 control_handle: std::mem::ManuallyDrop::new(control_handle),
5392 tx_id: header.tx_id,
5393 },
5394 })
5395 }
5396 0x59930bf23acc7d9a => {
5397 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5398 let mut req = fidl::new_empty!(
5399 NetworkManagerGetNetworkRequest,
5400 fidl::encoding::DefaultFuchsiaResourceDialect
5401 );
5402 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkManagerGetNetworkRequest>(&header, _body_bytes, handles, &mut req)?;
5403 let control_handle =
5404 NetworkManagerControlHandle { inner: this.inner.clone() };
5405 Ok(NetworkManagerRequest::GetNetwork {
5406 name: req.name,
5407
5408 responder: NetworkManagerGetNetworkResponder {
5409 control_handle: std::mem::ManuallyDrop::new(control_handle),
5410 tx_id: header.tx_id,
5411 },
5412 })
5413 }
5414 _ => Err(fidl::Error::UnknownOrdinal {
5415 ordinal: header.ordinal,
5416 protocol_name:
5417 <NetworkManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5418 }),
5419 }))
5420 },
5421 )
5422 }
5423}
5424
5425#[derive(Debug)]
5427pub enum NetworkManagerRequest {
5428 ListNetworks { responder: NetworkManagerListNetworksResponder },
5430 CreateNetwork {
5432 name: String,
5433 config: NetworkConfig,
5434 responder: NetworkManagerCreateNetworkResponder,
5435 },
5436 GetNetwork { name: String, responder: NetworkManagerGetNetworkResponder },
5438}
5439
5440impl NetworkManagerRequest {
5441 #[allow(irrefutable_let_patterns)]
5442 pub fn into_list_networks(self) -> Option<(NetworkManagerListNetworksResponder)> {
5443 if let NetworkManagerRequest::ListNetworks { responder } = self {
5444 Some((responder))
5445 } else {
5446 None
5447 }
5448 }
5449
5450 #[allow(irrefutable_let_patterns)]
5451 pub fn into_create_network(
5452 self,
5453 ) -> Option<(String, NetworkConfig, NetworkManagerCreateNetworkResponder)> {
5454 if let NetworkManagerRequest::CreateNetwork { name, config, responder } = self {
5455 Some((name, config, responder))
5456 } else {
5457 None
5458 }
5459 }
5460
5461 #[allow(irrefutable_let_patterns)]
5462 pub fn into_get_network(self) -> Option<(String, NetworkManagerGetNetworkResponder)> {
5463 if let NetworkManagerRequest::GetNetwork { name, responder } = self {
5464 Some((name, responder))
5465 } else {
5466 None
5467 }
5468 }
5469
5470 pub fn method_name(&self) -> &'static str {
5472 match *self {
5473 NetworkManagerRequest::ListNetworks { .. } => "list_networks",
5474 NetworkManagerRequest::CreateNetwork { .. } => "create_network",
5475 NetworkManagerRequest::GetNetwork { .. } => "get_network",
5476 }
5477 }
5478}
5479
5480#[derive(Debug, Clone)]
5481pub struct NetworkManagerControlHandle {
5482 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5483}
5484
5485impl fidl::endpoints::ControlHandle for NetworkManagerControlHandle {
5486 fn shutdown(&self) {
5487 self.inner.shutdown()
5488 }
5489
5490 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
5491 self.inner.shutdown_with_epitaph(status)
5492 }
5493
5494 fn is_closed(&self) -> bool {
5495 self.inner.channel().is_closed()
5496 }
5497 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
5498 self.inner.channel().on_closed()
5499 }
5500
5501 #[cfg(target_os = "fuchsia")]
5502 fn signal_peer(
5503 &self,
5504 clear_mask: zx::Signals,
5505 set_mask: zx::Signals,
5506 ) -> Result<(), zx_status::Status> {
5507 use fidl::Peered;
5508 self.inner.channel().signal_peer(clear_mask, set_mask)
5509 }
5510}
5511
5512impl NetworkManagerControlHandle {}
5513
5514#[must_use = "FIDL methods require a response to be sent"]
5515#[derive(Debug)]
5516pub struct NetworkManagerListNetworksResponder {
5517 control_handle: std::mem::ManuallyDrop<NetworkManagerControlHandle>,
5518 tx_id: u32,
5519}
5520
5521impl std::ops::Drop for NetworkManagerListNetworksResponder {
5525 fn drop(&mut self) {
5526 self.control_handle.shutdown();
5527 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5529 }
5530}
5531
5532impl fidl::endpoints::Responder for NetworkManagerListNetworksResponder {
5533 type ControlHandle = NetworkManagerControlHandle;
5534
5535 fn control_handle(&self) -> &NetworkManagerControlHandle {
5536 &self.control_handle
5537 }
5538
5539 fn drop_without_shutdown(mut self) {
5540 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5542 std::mem::forget(self);
5544 }
5545}
5546
5547impl NetworkManagerListNetworksResponder {
5548 pub fn send(self, mut nets: &[String]) -> Result<(), fidl::Error> {
5552 let _result = self.send_raw(nets);
5553 if _result.is_err() {
5554 self.control_handle.shutdown();
5555 }
5556 self.drop_without_shutdown();
5557 _result
5558 }
5559
5560 pub fn send_no_shutdown_on_err(self, mut nets: &[String]) -> Result<(), fidl::Error> {
5562 let _result = self.send_raw(nets);
5563 self.drop_without_shutdown();
5564 _result
5565 }
5566
5567 fn send_raw(&self, mut nets: &[String]) -> Result<(), fidl::Error> {
5568 self.control_handle.inner.send::<NetworkManagerListNetworksResponse>(
5569 (nets,),
5570 self.tx_id,
5571 0x2488653e0974cc62,
5572 fidl::encoding::DynamicFlags::empty(),
5573 )
5574 }
5575}
5576
5577#[must_use = "FIDL methods require a response to be sent"]
5578#[derive(Debug)]
5579pub struct NetworkManagerCreateNetworkResponder {
5580 control_handle: std::mem::ManuallyDrop<NetworkManagerControlHandle>,
5581 tx_id: u32,
5582}
5583
5584impl std::ops::Drop for NetworkManagerCreateNetworkResponder {
5588 fn drop(&mut self) {
5589 self.control_handle.shutdown();
5590 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5592 }
5593}
5594
5595impl fidl::endpoints::Responder for NetworkManagerCreateNetworkResponder {
5596 type ControlHandle = NetworkManagerControlHandle;
5597
5598 fn control_handle(&self) -> &NetworkManagerControlHandle {
5599 &self.control_handle
5600 }
5601
5602 fn drop_without_shutdown(mut self) {
5603 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5605 std::mem::forget(self);
5607 }
5608}
5609
5610impl NetworkManagerCreateNetworkResponder {
5611 pub fn send(
5615 self,
5616 mut status: i32,
5617 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5618 ) -> Result<(), fidl::Error> {
5619 let _result = self.send_raw(status, net);
5620 if _result.is_err() {
5621 self.control_handle.shutdown();
5622 }
5623 self.drop_without_shutdown();
5624 _result
5625 }
5626
5627 pub fn send_no_shutdown_on_err(
5629 self,
5630 mut status: i32,
5631 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5632 ) -> Result<(), fidl::Error> {
5633 let _result = self.send_raw(status, net);
5634 self.drop_without_shutdown();
5635 _result
5636 }
5637
5638 fn send_raw(
5639 &self,
5640 mut status: i32,
5641 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5642 ) -> Result<(), fidl::Error> {
5643 self.control_handle.inner.send::<NetworkManagerCreateNetworkResponse>(
5644 (status, net),
5645 self.tx_id,
5646 0x6052eb5ac709af,
5647 fidl::encoding::DynamicFlags::empty(),
5648 )
5649 }
5650}
5651
5652#[must_use = "FIDL methods require a response to be sent"]
5653#[derive(Debug)]
5654pub struct NetworkManagerGetNetworkResponder {
5655 control_handle: std::mem::ManuallyDrop<NetworkManagerControlHandle>,
5656 tx_id: u32,
5657}
5658
5659impl std::ops::Drop for NetworkManagerGetNetworkResponder {
5663 fn drop(&mut self) {
5664 self.control_handle.shutdown();
5665 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5667 }
5668}
5669
5670impl fidl::endpoints::Responder for NetworkManagerGetNetworkResponder {
5671 type ControlHandle = NetworkManagerControlHandle;
5672
5673 fn control_handle(&self) -> &NetworkManagerControlHandle {
5674 &self.control_handle
5675 }
5676
5677 fn drop_without_shutdown(mut self) {
5678 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5680 std::mem::forget(self);
5682 }
5683}
5684
5685impl NetworkManagerGetNetworkResponder {
5686 pub fn send(
5690 self,
5691 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5692 ) -> Result<(), fidl::Error> {
5693 let _result = self.send_raw(net);
5694 if _result.is_err() {
5695 self.control_handle.shutdown();
5696 }
5697 self.drop_without_shutdown();
5698 _result
5699 }
5700
5701 pub fn send_no_shutdown_on_err(
5703 self,
5704 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5705 ) -> Result<(), fidl::Error> {
5706 let _result = self.send_raw(net);
5707 self.drop_without_shutdown();
5708 _result
5709 }
5710
5711 fn send_raw(
5712 &self,
5713 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5714 ) -> Result<(), fidl::Error> {
5715 self.control_handle.inner.send::<NetworkManagerGetNetworkResponse>(
5716 (net,),
5717 self.tx_id,
5718 0x59930bf23acc7d9a,
5719 fidl::encoding::DynamicFlags::empty(),
5720 )
5721 }
5722}
5723
5724#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
5725pub struct SetupHandleMarker;
5726
5727impl fidl::endpoints::ProtocolMarker for SetupHandleMarker {
5728 type Proxy = SetupHandleProxy;
5729 type RequestStream = SetupHandleRequestStream;
5730 #[cfg(target_os = "fuchsia")]
5731 type SynchronousProxy = SetupHandleSynchronousProxy;
5732
5733 const DEBUG_NAME: &'static str = "(anonymous) SetupHandle";
5734}
5735
5736pub trait SetupHandleProxyInterface: Send + Sync {}
5737#[derive(Debug)]
5738#[cfg(target_os = "fuchsia")]
5739pub struct SetupHandleSynchronousProxy {
5740 client: fidl::client::sync::Client,
5741}
5742
5743#[cfg(target_os = "fuchsia")]
5744impl fidl::endpoints::SynchronousProxy for SetupHandleSynchronousProxy {
5745 type Proxy = SetupHandleProxy;
5746 type Protocol = SetupHandleMarker;
5747
5748 fn from_channel(inner: fidl::Channel) -> Self {
5749 Self::new(inner)
5750 }
5751
5752 fn into_channel(self) -> fidl::Channel {
5753 self.client.into_channel()
5754 }
5755
5756 fn as_channel(&self) -> &fidl::Channel {
5757 self.client.as_channel()
5758 }
5759}
5760
5761#[cfg(target_os = "fuchsia")]
5762impl SetupHandleSynchronousProxy {
5763 pub fn new(channel: fidl::Channel) -> Self {
5764 let protocol_name = <SetupHandleMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5765 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
5766 }
5767
5768 pub fn into_channel(self) -> fidl::Channel {
5769 self.client.into_channel()
5770 }
5771
5772 pub fn wait_for_event(
5775 &self,
5776 deadline: zx::MonotonicInstant,
5777 ) -> Result<SetupHandleEvent, fidl::Error> {
5778 SetupHandleEvent::decode(self.client.wait_for_event(deadline)?)
5779 }
5780}
5781
5782#[cfg(target_os = "fuchsia")]
5783impl From<SetupHandleSynchronousProxy> for zx::NullableHandle {
5784 fn from(value: SetupHandleSynchronousProxy) -> Self {
5785 value.into_channel().into()
5786 }
5787}
5788
5789#[cfg(target_os = "fuchsia")]
5790impl From<fidl::Channel> for SetupHandleSynchronousProxy {
5791 fn from(value: fidl::Channel) -> Self {
5792 Self::new(value)
5793 }
5794}
5795
5796#[cfg(target_os = "fuchsia")]
5797impl fidl::endpoints::FromClient for SetupHandleSynchronousProxy {
5798 type Protocol = SetupHandleMarker;
5799
5800 fn from_client(value: fidl::endpoints::ClientEnd<SetupHandleMarker>) -> Self {
5801 Self::new(value.into_channel())
5802 }
5803}
5804
5805#[derive(Debug, Clone)]
5806pub struct SetupHandleProxy {
5807 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5808}
5809
5810impl fidl::endpoints::Proxy for SetupHandleProxy {
5811 type Protocol = SetupHandleMarker;
5812
5813 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5814 Self::new(inner)
5815 }
5816
5817 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5818 self.client.into_channel().map_err(|client| Self { client })
5819 }
5820
5821 fn as_channel(&self) -> &::fidl::AsyncChannel {
5822 self.client.as_channel()
5823 }
5824}
5825
5826impl SetupHandleProxy {
5827 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5829 let protocol_name = <SetupHandleMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5830 Self { client: fidl::client::Client::new(channel, protocol_name) }
5831 }
5832
5833 pub fn take_event_stream(&self) -> SetupHandleEventStream {
5839 SetupHandleEventStream { event_receiver: self.client.take_event_receiver() }
5840 }
5841}
5842
5843impl SetupHandleProxyInterface for SetupHandleProxy {}
5844
5845pub struct SetupHandleEventStream {
5846 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5847}
5848
5849impl std::marker::Unpin for SetupHandleEventStream {}
5850
5851impl futures::stream::FusedStream for SetupHandleEventStream {
5852 fn is_terminated(&self) -> bool {
5853 self.event_receiver.is_terminated()
5854 }
5855}
5856
5857impl futures::Stream for SetupHandleEventStream {
5858 type Item = Result<SetupHandleEvent, fidl::Error>;
5859
5860 fn poll_next(
5861 mut self: std::pin::Pin<&mut Self>,
5862 cx: &mut std::task::Context<'_>,
5863 ) -> std::task::Poll<Option<Self::Item>> {
5864 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5865 &mut self.event_receiver,
5866 cx
5867 )?) {
5868 Some(buf) => std::task::Poll::Ready(Some(SetupHandleEvent::decode(buf))),
5869 None => std::task::Poll::Ready(None),
5870 }
5871 }
5872}
5873
5874#[derive(Debug)]
5875pub enum SetupHandleEvent {}
5876
5877impl SetupHandleEvent {
5878 fn decode(
5880 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5881 ) -> Result<SetupHandleEvent, fidl::Error> {
5882 let (bytes, _handles) = buf.split_mut();
5883 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5884 debug_assert_eq!(tx_header.tx_id, 0);
5885 match tx_header.ordinal {
5886 _ => Err(fidl::Error::UnknownOrdinal {
5887 ordinal: tx_header.ordinal,
5888 protocol_name: <SetupHandleMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5889 }),
5890 }
5891 }
5892}
5893
5894pub struct SetupHandleRequestStream {
5896 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5897 is_terminated: bool,
5898}
5899
5900impl std::marker::Unpin for SetupHandleRequestStream {}
5901
5902impl futures::stream::FusedStream for SetupHandleRequestStream {
5903 fn is_terminated(&self) -> bool {
5904 self.is_terminated
5905 }
5906}
5907
5908impl fidl::endpoints::RequestStream for SetupHandleRequestStream {
5909 type Protocol = SetupHandleMarker;
5910 type ControlHandle = SetupHandleControlHandle;
5911
5912 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5913 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5914 }
5915
5916 fn control_handle(&self) -> Self::ControlHandle {
5917 SetupHandleControlHandle { inner: self.inner.clone() }
5918 }
5919
5920 fn into_inner(
5921 self,
5922 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5923 {
5924 (self.inner, self.is_terminated)
5925 }
5926
5927 fn from_inner(
5928 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5929 is_terminated: bool,
5930 ) -> Self {
5931 Self { inner, is_terminated }
5932 }
5933}
5934
5935impl futures::Stream for SetupHandleRequestStream {
5936 type Item = Result<SetupHandleRequest, fidl::Error>;
5937
5938 fn poll_next(
5939 mut self: std::pin::Pin<&mut Self>,
5940 cx: &mut std::task::Context<'_>,
5941 ) -> std::task::Poll<Option<Self::Item>> {
5942 let this = &mut *self;
5943 if this.inner.check_shutdown(cx) {
5944 this.is_terminated = true;
5945 return std::task::Poll::Ready(None);
5946 }
5947 if this.is_terminated {
5948 panic!("polled SetupHandleRequestStream after completion");
5949 }
5950 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
5951 |bytes, handles| {
5952 match this.inner.channel().read_etc(cx, bytes, handles) {
5953 std::task::Poll::Ready(Ok(())) => {}
5954 std::task::Poll::Pending => return std::task::Poll::Pending,
5955 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
5956 this.is_terminated = true;
5957 return std::task::Poll::Ready(None);
5958 }
5959 std::task::Poll::Ready(Err(e)) => {
5960 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5961 e.into(),
5962 ))));
5963 }
5964 }
5965
5966 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5968
5969 std::task::Poll::Ready(Some(match header.ordinal {
5970 _ => Err(fidl::Error::UnknownOrdinal {
5971 ordinal: header.ordinal,
5972 protocol_name:
5973 <SetupHandleMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5974 }),
5975 }))
5976 },
5977 )
5978 }
5979}
5980
5981#[derive(Debug)]
5984pub enum SetupHandleRequest {}
5985
5986impl SetupHandleRequest {
5987 pub fn method_name(&self) -> &'static str {
5989 match *self {}
5990 }
5991}
5992
5993#[derive(Debug, Clone)]
5994pub struct SetupHandleControlHandle {
5995 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5996}
5997
5998impl fidl::endpoints::ControlHandle for SetupHandleControlHandle {
5999 fn shutdown(&self) {
6000 self.inner.shutdown()
6001 }
6002
6003 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
6004 self.inner.shutdown_with_epitaph(status)
6005 }
6006
6007 fn is_closed(&self) -> bool {
6008 self.inner.channel().is_closed()
6009 }
6010 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
6011 self.inner.channel().on_closed()
6012 }
6013
6014 #[cfg(target_os = "fuchsia")]
6015 fn signal_peer(
6016 &self,
6017 clear_mask: zx::Signals,
6018 set_mask: zx::Signals,
6019 ) -> Result<(), zx_status::Status> {
6020 use fidl::Peered;
6021 self.inner.channel().signal_peer(clear_mask, set_mask)
6022 }
6023}
6024
6025impl SetupHandleControlHandle {}
6026
6027mod internal {
6028 use super::*;
6029
6030 impl fidl::encoding::ResourceTypeMarker for DeviceProxyServeControllerRequest {
6031 type Borrowed<'a> = &'a mut Self;
6032 fn take_or_borrow<'a>(
6033 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6034 ) -> Self::Borrowed<'a> {
6035 value
6036 }
6037 }
6038
6039 unsafe impl fidl::encoding::TypeMarker for DeviceProxyServeControllerRequest {
6040 type Owned = Self;
6041
6042 #[inline(always)]
6043 fn inline_align(_context: fidl::encoding::Context) -> usize {
6044 4
6045 }
6046
6047 #[inline(always)]
6048 fn inline_size(_context: fidl::encoding::Context) -> usize {
6049 4
6050 }
6051 }
6052
6053 unsafe impl
6054 fidl::encoding::Encode<
6055 DeviceProxyServeControllerRequest,
6056 fidl::encoding::DefaultFuchsiaResourceDialect,
6057 > for &mut DeviceProxyServeControllerRequest
6058 {
6059 #[inline]
6060 unsafe fn encode(
6061 self,
6062 encoder: &mut fidl::encoding::Encoder<
6063 '_,
6064 fidl::encoding::DefaultFuchsiaResourceDialect,
6065 >,
6066 offset: usize,
6067 _depth: fidl::encoding::Depth,
6068 ) -> fidl::Result<()> {
6069 encoder.debug_check_bounds::<DeviceProxyServeControllerRequest>(offset);
6070 fidl::encoding::Encode::<
6072 DeviceProxyServeControllerRequest,
6073 fidl::encoding::DefaultFuchsiaResourceDialect,
6074 >::encode(
6075 (<fidl::encoding::Endpoint<
6076 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6077 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6078 &mut self.req
6079 ),),
6080 encoder,
6081 offset,
6082 _depth,
6083 )
6084 }
6085 }
6086 unsafe impl<
6087 T0: fidl::encoding::Encode<
6088 fidl::encoding::Endpoint<
6089 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6090 >,
6091 fidl::encoding::DefaultFuchsiaResourceDialect,
6092 >,
6093 >
6094 fidl::encoding::Encode<
6095 DeviceProxyServeControllerRequest,
6096 fidl::encoding::DefaultFuchsiaResourceDialect,
6097 > for (T0,)
6098 {
6099 #[inline]
6100 unsafe fn encode(
6101 self,
6102 encoder: &mut fidl::encoding::Encoder<
6103 '_,
6104 fidl::encoding::DefaultFuchsiaResourceDialect,
6105 >,
6106 offset: usize,
6107 depth: fidl::encoding::Depth,
6108 ) -> fidl::Result<()> {
6109 encoder.debug_check_bounds::<DeviceProxyServeControllerRequest>(offset);
6110 self.0.encode(encoder, offset + 0, depth)?;
6114 Ok(())
6115 }
6116 }
6117
6118 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6119 for DeviceProxyServeControllerRequest
6120 {
6121 #[inline(always)]
6122 fn new_empty() -> Self {
6123 Self {
6124 req: fidl::new_empty!(
6125 fidl::encoding::Endpoint<
6126 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6127 >,
6128 fidl::encoding::DefaultFuchsiaResourceDialect
6129 ),
6130 }
6131 }
6132
6133 #[inline]
6134 unsafe fn decode(
6135 &mut self,
6136 decoder: &mut fidl::encoding::Decoder<
6137 '_,
6138 fidl::encoding::DefaultFuchsiaResourceDialect,
6139 >,
6140 offset: usize,
6141 _depth: fidl::encoding::Depth,
6142 ) -> fidl::Result<()> {
6143 decoder.debug_check_bounds::<Self>(offset);
6144 fidl::decode!(
6146 fidl::encoding::Endpoint<
6147 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6148 >,
6149 fidl::encoding::DefaultFuchsiaResourceDialect,
6150 &mut self.req,
6151 decoder,
6152 offset + 0,
6153 _depth
6154 )?;
6155 Ok(())
6156 }
6157 }
6158
6159 impl fidl::encoding::ResourceTypeMarker for DeviceProxyServeDeviceRequest {
6160 type Borrowed<'a> = &'a mut Self;
6161 fn take_or_borrow<'a>(
6162 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6163 ) -> Self::Borrowed<'a> {
6164 value
6165 }
6166 }
6167
6168 unsafe impl fidl::encoding::TypeMarker for DeviceProxyServeDeviceRequest {
6169 type Owned = Self;
6170
6171 #[inline(always)]
6172 fn inline_align(_context: fidl::encoding::Context) -> usize {
6173 4
6174 }
6175
6176 #[inline(always)]
6177 fn inline_size(_context: fidl::encoding::Context) -> usize {
6178 4
6179 }
6180 }
6181
6182 unsafe impl
6183 fidl::encoding::Encode<
6184 DeviceProxyServeDeviceRequest,
6185 fidl::encoding::DefaultFuchsiaResourceDialect,
6186 > for &mut DeviceProxyServeDeviceRequest
6187 {
6188 #[inline]
6189 unsafe fn encode(
6190 self,
6191 encoder: &mut fidl::encoding::Encoder<
6192 '_,
6193 fidl::encoding::DefaultFuchsiaResourceDialect,
6194 >,
6195 offset: usize,
6196 _depth: fidl::encoding::Depth,
6197 ) -> fidl::Result<()> {
6198 encoder.debug_check_bounds::<DeviceProxyServeDeviceRequest>(offset);
6199 fidl::encoding::Encode::<
6201 DeviceProxyServeDeviceRequest,
6202 fidl::encoding::DefaultFuchsiaResourceDialect,
6203 >::encode(
6204 (<fidl::encoding::Endpoint<
6205 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
6206 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6207 &mut self.req
6208 ),),
6209 encoder,
6210 offset,
6211 _depth,
6212 )
6213 }
6214 }
6215 unsafe impl<
6216 T0: fidl::encoding::Encode<
6217 fidl::encoding::Endpoint<
6218 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
6219 >,
6220 fidl::encoding::DefaultFuchsiaResourceDialect,
6221 >,
6222 >
6223 fidl::encoding::Encode<
6224 DeviceProxyServeDeviceRequest,
6225 fidl::encoding::DefaultFuchsiaResourceDialect,
6226 > for (T0,)
6227 {
6228 #[inline]
6229 unsafe fn encode(
6230 self,
6231 encoder: &mut fidl::encoding::Encoder<
6232 '_,
6233 fidl::encoding::DefaultFuchsiaResourceDialect,
6234 >,
6235 offset: usize,
6236 depth: fidl::encoding::Depth,
6237 ) -> fidl::Result<()> {
6238 encoder.debug_check_bounds::<DeviceProxyServeDeviceRequest>(offset);
6239 self.0.encode(encoder, offset + 0, depth)?;
6243 Ok(())
6244 }
6245 }
6246
6247 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6248 for DeviceProxyServeDeviceRequest
6249 {
6250 #[inline(always)]
6251 fn new_empty() -> Self {
6252 Self {
6253 req: fidl::new_empty!(
6254 fidl::encoding::Endpoint<
6255 fidl::endpoints::ServerEnd<
6256 fidl_fuchsia_hardware_network::DeviceInstanceMarker,
6257 >,
6258 >,
6259 fidl::encoding::DefaultFuchsiaResourceDialect
6260 ),
6261 }
6262 }
6263
6264 #[inline]
6265 unsafe fn decode(
6266 &mut self,
6267 decoder: &mut fidl::encoding::Decoder<
6268 '_,
6269 fidl::encoding::DefaultFuchsiaResourceDialect,
6270 >,
6271 offset: usize,
6272 _depth: fidl::encoding::Depth,
6273 ) -> fidl::Result<()> {
6274 decoder.debug_check_bounds::<Self>(offset);
6275 fidl::decode!(
6277 fidl::encoding::Endpoint<
6278 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceInstanceMarker>,
6279 >,
6280 fidl::encoding::DefaultFuchsiaResourceDialect,
6281 &mut self.req,
6282 decoder,
6283 offset + 0,
6284 _depth
6285 )?;
6286 Ok(())
6287 }
6288 }
6289
6290 impl fidl::encoding::ResourceTypeMarker for EndpointGetPortRequest {
6291 type Borrowed<'a> = &'a mut Self;
6292 fn take_or_borrow<'a>(
6293 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6294 ) -> Self::Borrowed<'a> {
6295 value
6296 }
6297 }
6298
6299 unsafe impl fidl::encoding::TypeMarker for EndpointGetPortRequest {
6300 type Owned = Self;
6301
6302 #[inline(always)]
6303 fn inline_align(_context: fidl::encoding::Context) -> usize {
6304 4
6305 }
6306
6307 #[inline(always)]
6308 fn inline_size(_context: fidl::encoding::Context) -> usize {
6309 4
6310 }
6311 }
6312
6313 unsafe impl
6314 fidl::encoding::Encode<
6315 EndpointGetPortRequest,
6316 fidl::encoding::DefaultFuchsiaResourceDialect,
6317 > for &mut EndpointGetPortRequest
6318 {
6319 #[inline]
6320 unsafe fn encode(
6321 self,
6322 encoder: &mut fidl::encoding::Encoder<
6323 '_,
6324 fidl::encoding::DefaultFuchsiaResourceDialect,
6325 >,
6326 offset: usize,
6327 _depth: fidl::encoding::Depth,
6328 ) -> fidl::Result<()> {
6329 encoder.debug_check_bounds::<EndpointGetPortRequest>(offset);
6330 fidl::encoding::Encode::<
6332 EndpointGetPortRequest,
6333 fidl::encoding::DefaultFuchsiaResourceDialect,
6334 >::encode(
6335 (<fidl::encoding::Endpoint<
6336 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6337 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6338 &mut self.port
6339 ),),
6340 encoder,
6341 offset,
6342 _depth,
6343 )
6344 }
6345 }
6346 unsafe impl<
6347 T0: fidl::encoding::Encode<
6348 fidl::encoding::Endpoint<
6349 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6350 >,
6351 fidl::encoding::DefaultFuchsiaResourceDialect,
6352 >,
6353 >
6354 fidl::encoding::Encode<
6355 EndpointGetPortRequest,
6356 fidl::encoding::DefaultFuchsiaResourceDialect,
6357 > for (T0,)
6358 {
6359 #[inline]
6360 unsafe fn encode(
6361 self,
6362 encoder: &mut fidl::encoding::Encoder<
6363 '_,
6364 fidl::encoding::DefaultFuchsiaResourceDialect,
6365 >,
6366 offset: usize,
6367 depth: fidl::encoding::Depth,
6368 ) -> fidl::Result<()> {
6369 encoder.debug_check_bounds::<EndpointGetPortRequest>(offset);
6370 self.0.encode(encoder, offset + 0, depth)?;
6374 Ok(())
6375 }
6376 }
6377
6378 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6379 for EndpointGetPortRequest
6380 {
6381 #[inline(always)]
6382 fn new_empty() -> Self {
6383 Self {
6384 port: fidl::new_empty!(
6385 fidl::encoding::Endpoint<
6386 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6387 >,
6388 fidl::encoding::DefaultFuchsiaResourceDialect
6389 ),
6390 }
6391 }
6392
6393 #[inline]
6394 unsafe fn decode(
6395 &mut self,
6396 decoder: &mut fidl::encoding::Decoder<
6397 '_,
6398 fidl::encoding::DefaultFuchsiaResourceDialect,
6399 >,
6400 offset: usize,
6401 _depth: fidl::encoding::Depth,
6402 ) -> fidl::Result<()> {
6403 decoder.debug_check_bounds::<Self>(offset);
6404 fidl::decode!(
6406 fidl::encoding::Endpoint<
6407 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6408 >,
6409 fidl::encoding::DefaultFuchsiaResourceDialect,
6410 &mut self.port,
6411 decoder,
6412 offset + 0,
6413 _depth
6414 )?;
6415 Ok(())
6416 }
6417 }
6418
6419 impl fidl::encoding::ResourceTypeMarker for EndpointGetProxyRequest {
6420 type Borrowed<'a> = &'a mut Self;
6421 fn take_or_borrow<'a>(
6422 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6423 ) -> Self::Borrowed<'a> {
6424 value
6425 }
6426 }
6427
6428 unsafe impl fidl::encoding::TypeMarker for EndpointGetProxyRequest {
6429 type Owned = Self;
6430
6431 #[inline(always)]
6432 fn inline_align(_context: fidl::encoding::Context) -> usize {
6433 4
6434 }
6435
6436 #[inline(always)]
6437 fn inline_size(_context: fidl::encoding::Context) -> usize {
6438 4
6439 }
6440 }
6441
6442 unsafe impl
6443 fidl::encoding::Encode<
6444 EndpointGetProxyRequest,
6445 fidl::encoding::DefaultFuchsiaResourceDialect,
6446 > for &mut EndpointGetProxyRequest
6447 {
6448 #[inline]
6449 unsafe fn encode(
6450 self,
6451 encoder: &mut fidl::encoding::Encoder<
6452 '_,
6453 fidl::encoding::DefaultFuchsiaResourceDialect,
6454 >,
6455 offset: usize,
6456 _depth: fidl::encoding::Depth,
6457 ) -> fidl::Result<()> {
6458 encoder.debug_check_bounds::<EndpointGetProxyRequest>(offset);
6459 fidl::encoding::Encode::<EndpointGetProxyRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6461 (
6462 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.proxy),
6463 ),
6464 encoder, offset, _depth
6465 )
6466 }
6467 }
6468 unsafe impl<
6469 T0: fidl::encoding::Encode<
6470 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6471 fidl::encoding::DefaultFuchsiaResourceDialect,
6472 >,
6473 >
6474 fidl::encoding::Encode<
6475 EndpointGetProxyRequest,
6476 fidl::encoding::DefaultFuchsiaResourceDialect,
6477 > for (T0,)
6478 {
6479 #[inline]
6480 unsafe fn encode(
6481 self,
6482 encoder: &mut fidl::encoding::Encoder<
6483 '_,
6484 fidl::encoding::DefaultFuchsiaResourceDialect,
6485 >,
6486 offset: usize,
6487 depth: fidl::encoding::Depth,
6488 ) -> fidl::Result<()> {
6489 encoder.debug_check_bounds::<EndpointGetProxyRequest>(offset);
6490 self.0.encode(encoder, offset + 0, depth)?;
6494 Ok(())
6495 }
6496 }
6497
6498 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6499 for EndpointGetProxyRequest
6500 {
6501 #[inline(always)]
6502 fn new_empty() -> Self {
6503 Self {
6504 proxy: fidl::new_empty!(
6505 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6506 fidl::encoding::DefaultFuchsiaResourceDialect
6507 ),
6508 }
6509 }
6510
6511 #[inline]
6512 unsafe fn decode(
6513 &mut self,
6514 decoder: &mut fidl::encoding::Decoder<
6515 '_,
6516 fidl::encoding::DefaultFuchsiaResourceDialect,
6517 >,
6518 offset: usize,
6519 _depth: fidl::encoding::Depth,
6520 ) -> fidl::Result<()> {
6521 decoder.debug_check_bounds::<Self>(offset);
6522 fidl::decode!(
6524 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6525 fidl::encoding::DefaultFuchsiaResourceDialect,
6526 &mut self.proxy,
6527 decoder,
6528 offset + 0,
6529 _depth
6530 )?;
6531 Ok(())
6532 }
6533 }
6534
6535 impl fidl::encoding::ResourceTypeMarker for EndpointManagerCreateEndpointResponse {
6536 type Borrowed<'a> = &'a mut Self;
6537 fn take_or_borrow<'a>(
6538 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6539 ) -> Self::Borrowed<'a> {
6540 value
6541 }
6542 }
6543
6544 unsafe impl fidl::encoding::TypeMarker for EndpointManagerCreateEndpointResponse {
6545 type Owned = Self;
6546
6547 #[inline(always)]
6548 fn inline_align(_context: fidl::encoding::Context) -> usize {
6549 4
6550 }
6551
6552 #[inline(always)]
6553 fn inline_size(_context: fidl::encoding::Context) -> usize {
6554 8
6555 }
6556 }
6557
6558 unsafe impl
6559 fidl::encoding::Encode<
6560 EndpointManagerCreateEndpointResponse,
6561 fidl::encoding::DefaultFuchsiaResourceDialect,
6562 > for &mut EndpointManagerCreateEndpointResponse
6563 {
6564 #[inline]
6565 unsafe fn encode(
6566 self,
6567 encoder: &mut fidl::encoding::Encoder<
6568 '_,
6569 fidl::encoding::DefaultFuchsiaResourceDialect,
6570 >,
6571 offset: usize,
6572 _depth: fidl::encoding::Depth,
6573 ) -> fidl::Result<()> {
6574 encoder.debug_check_bounds::<EndpointManagerCreateEndpointResponse>(offset);
6575 fidl::encoding::Encode::<
6577 EndpointManagerCreateEndpointResponse,
6578 fidl::encoding::DefaultFuchsiaResourceDialect,
6579 >::encode(
6580 (
6581 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
6582 <fidl::encoding::Optional<
6583 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6584 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6585 &mut self.endpoint
6586 ),
6587 ),
6588 encoder,
6589 offset,
6590 _depth,
6591 )
6592 }
6593 }
6594 unsafe impl<
6595 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
6596 T1: fidl::encoding::Encode<
6597 fidl::encoding::Optional<
6598 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6599 >,
6600 fidl::encoding::DefaultFuchsiaResourceDialect,
6601 >,
6602 >
6603 fidl::encoding::Encode<
6604 EndpointManagerCreateEndpointResponse,
6605 fidl::encoding::DefaultFuchsiaResourceDialect,
6606 > for (T0, T1)
6607 {
6608 #[inline]
6609 unsafe fn encode(
6610 self,
6611 encoder: &mut fidl::encoding::Encoder<
6612 '_,
6613 fidl::encoding::DefaultFuchsiaResourceDialect,
6614 >,
6615 offset: usize,
6616 depth: fidl::encoding::Depth,
6617 ) -> fidl::Result<()> {
6618 encoder.debug_check_bounds::<EndpointManagerCreateEndpointResponse>(offset);
6619 self.0.encode(encoder, offset + 0, depth)?;
6623 self.1.encode(encoder, offset + 4, depth)?;
6624 Ok(())
6625 }
6626 }
6627
6628 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6629 for EndpointManagerCreateEndpointResponse
6630 {
6631 #[inline(always)]
6632 fn new_empty() -> Self {
6633 Self {
6634 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
6635 endpoint: fidl::new_empty!(
6636 fidl::encoding::Optional<
6637 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6638 >,
6639 fidl::encoding::DefaultFuchsiaResourceDialect
6640 ),
6641 }
6642 }
6643
6644 #[inline]
6645 unsafe fn decode(
6646 &mut self,
6647 decoder: &mut fidl::encoding::Decoder<
6648 '_,
6649 fidl::encoding::DefaultFuchsiaResourceDialect,
6650 >,
6651 offset: usize,
6652 _depth: fidl::encoding::Depth,
6653 ) -> fidl::Result<()> {
6654 decoder.debug_check_bounds::<Self>(offset);
6655 fidl::decode!(
6657 i32,
6658 fidl::encoding::DefaultFuchsiaResourceDialect,
6659 &mut self.status,
6660 decoder,
6661 offset + 0,
6662 _depth
6663 )?;
6664 fidl::decode!(
6665 fidl::encoding::Optional<
6666 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6667 >,
6668 fidl::encoding::DefaultFuchsiaResourceDialect,
6669 &mut self.endpoint,
6670 decoder,
6671 offset + 4,
6672 _depth
6673 )?;
6674 Ok(())
6675 }
6676 }
6677
6678 impl fidl::encoding::ResourceTypeMarker for EndpointManagerGetEndpointResponse {
6679 type Borrowed<'a> = &'a mut Self;
6680 fn take_or_borrow<'a>(
6681 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6682 ) -> Self::Borrowed<'a> {
6683 value
6684 }
6685 }
6686
6687 unsafe impl fidl::encoding::TypeMarker for EndpointManagerGetEndpointResponse {
6688 type Owned = Self;
6689
6690 #[inline(always)]
6691 fn inline_align(_context: fidl::encoding::Context) -> usize {
6692 4
6693 }
6694
6695 #[inline(always)]
6696 fn inline_size(_context: fidl::encoding::Context) -> usize {
6697 4
6698 }
6699 }
6700
6701 unsafe impl
6702 fidl::encoding::Encode<
6703 EndpointManagerGetEndpointResponse,
6704 fidl::encoding::DefaultFuchsiaResourceDialect,
6705 > for &mut EndpointManagerGetEndpointResponse
6706 {
6707 #[inline]
6708 unsafe fn encode(
6709 self,
6710 encoder: &mut fidl::encoding::Encoder<
6711 '_,
6712 fidl::encoding::DefaultFuchsiaResourceDialect,
6713 >,
6714 offset: usize,
6715 _depth: fidl::encoding::Depth,
6716 ) -> fidl::Result<()> {
6717 encoder.debug_check_bounds::<EndpointManagerGetEndpointResponse>(offset);
6718 fidl::encoding::Encode::<
6720 EndpointManagerGetEndpointResponse,
6721 fidl::encoding::DefaultFuchsiaResourceDialect,
6722 >::encode(
6723 (<fidl::encoding::Optional<
6724 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6725 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6726 &mut self.endpoint
6727 ),),
6728 encoder,
6729 offset,
6730 _depth,
6731 )
6732 }
6733 }
6734 unsafe impl<
6735 T0: fidl::encoding::Encode<
6736 fidl::encoding::Optional<
6737 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6738 >,
6739 fidl::encoding::DefaultFuchsiaResourceDialect,
6740 >,
6741 >
6742 fidl::encoding::Encode<
6743 EndpointManagerGetEndpointResponse,
6744 fidl::encoding::DefaultFuchsiaResourceDialect,
6745 > for (T0,)
6746 {
6747 #[inline]
6748 unsafe fn encode(
6749 self,
6750 encoder: &mut fidl::encoding::Encoder<
6751 '_,
6752 fidl::encoding::DefaultFuchsiaResourceDialect,
6753 >,
6754 offset: usize,
6755 depth: fidl::encoding::Depth,
6756 ) -> fidl::Result<()> {
6757 encoder.debug_check_bounds::<EndpointManagerGetEndpointResponse>(offset);
6758 self.0.encode(encoder, offset + 0, depth)?;
6762 Ok(())
6763 }
6764 }
6765
6766 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6767 for EndpointManagerGetEndpointResponse
6768 {
6769 #[inline(always)]
6770 fn new_empty() -> Self {
6771 Self {
6772 endpoint: fidl::new_empty!(
6773 fidl::encoding::Optional<
6774 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6775 >,
6776 fidl::encoding::DefaultFuchsiaResourceDialect
6777 ),
6778 }
6779 }
6780
6781 #[inline]
6782 unsafe fn decode(
6783 &mut self,
6784 decoder: &mut fidl::encoding::Decoder<
6785 '_,
6786 fidl::encoding::DefaultFuchsiaResourceDialect,
6787 >,
6788 offset: usize,
6789 _depth: fidl::encoding::Depth,
6790 ) -> fidl::Result<()> {
6791 decoder.debug_check_bounds::<Self>(offset);
6792 fidl::decode!(
6794 fidl::encoding::Optional<
6795 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6796 >,
6797 fidl::encoding::DefaultFuchsiaResourceDialect,
6798 &mut self.endpoint,
6799 decoder,
6800 offset + 0,
6801 _depth
6802 )?;
6803 Ok(())
6804 }
6805 }
6806
6807 impl fidl::encoding::ResourceTypeMarker for NetworkContextCloneRequest {
6808 type Borrowed<'a> = &'a mut Self;
6809 fn take_or_borrow<'a>(
6810 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6811 ) -> Self::Borrowed<'a> {
6812 value
6813 }
6814 }
6815
6816 unsafe impl fidl::encoding::TypeMarker for NetworkContextCloneRequest {
6817 type Owned = Self;
6818
6819 #[inline(always)]
6820 fn inline_align(_context: fidl::encoding::Context) -> usize {
6821 4
6822 }
6823
6824 #[inline(always)]
6825 fn inline_size(_context: fidl::encoding::Context) -> usize {
6826 4
6827 }
6828 }
6829
6830 unsafe impl
6831 fidl::encoding::Encode<
6832 NetworkContextCloneRequest,
6833 fidl::encoding::DefaultFuchsiaResourceDialect,
6834 > for &mut NetworkContextCloneRequest
6835 {
6836 #[inline]
6837 unsafe fn encode(
6838 self,
6839 encoder: &mut fidl::encoding::Encoder<
6840 '_,
6841 fidl::encoding::DefaultFuchsiaResourceDialect,
6842 >,
6843 offset: usize,
6844 _depth: fidl::encoding::Depth,
6845 ) -> fidl::Result<()> {
6846 encoder.debug_check_bounds::<NetworkContextCloneRequest>(offset);
6847 fidl::encoding::Encode::<NetworkContextCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6849 (
6850 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.network_context),
6851 ),
6852 encoder, offset, _depth
6853 )
6854 }
6855 }
6856 unsafe impl<
6857 T0: fidl::encoding::Encode<
6858 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6859 fidl::encoding::DefaultFuchsiaResourceDialect,
6860 >,
6861 >
6862 fidl::encoding::Encode<
6863 NetworkContextCloneRequest,
6864 fidl::encoding::DefaultFuchsiaResourceDialect,
6865 > for (T0,)
6866 {
6867 #[inline]
6868 unsafe fn encode(
6869 self,
6870 encoder: &mut fidl::encoding::Encoder<
6871 '_,
6872 fidl::encoding::DefaultFuchsiaResourceDialect,
6873 >,
6874 offset: usize,
6875 depth: fidl::encoding::Depth,
6876 ) -> fidl::Result<()> {
6877 encoder.debug_check_bounds::<NetworkContextCloneRequest>(offset);
6878 self.0.encode(encoder, offset + 0, depth)?;
6882 Ok(())
6883 }
6884 }
6885
6886 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6887 for NetworkContextCloneRequest
6888 {
6889 #[inline(always)]
6890 fn new_empty() -> Self {
6891 Self {
6892 network_context: fidl::new_empty!(
6893 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6894 fidl::encoding::DefaultFuchsiaResourceDialect
6895 ),
6896 }
6897 }
6898
6899 #[inline]
6900 unsafe fn decode(
6901 &mut self,
6902 decoder: &mut fidl::encoding::Decoder<
6903 '_,
6904 fidl::encoding::DefaultFuchsiaResourceDialect,
6905 >,
6906 offset: usize,
6907 _depth: fidl::encoding::Depth,
6908 ) -> fidl::Result<()> {
6909 decoder.debug_check_bounds::<Self>(offset);
6910 fidl::decode!(
6912 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6913 fidl::encoding::DefaultFuchsiaResourceDialect,
6914 &mut self.network_context,
6915 decoder,
6916 offset + 0,
6917 _depth
6918 )?;
6919 Ok(())
6920 }
6921 }
6922
6923 impl fidl::encoding::ResourceTypeMarker for NetworkContextGetEndpointManagerRequest {
6924 type Borrowed<'a> = &'a mut Self;
6925 fn take_or_borrow<'a>(
6926 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6927 ) -> Self::Borrowed<'a> {
6928 value
6929 }
6930 }
6931
6932 unsafe impl fidl::encoding::TypeMarker for NetworkContextGetEndpointManagerRequest {
6933 type Owned = Self;
6934
6935 #[inline(always)]
6936 fn inline_align(_context: fidl::encoding::Context) -> usize {
6937 4
6938 }
6939
6940 #[inline(always)]
6941 fn inline_size(_context: fidl::encoding::Context) -> usize {
6942 4
6943 }
6944 }
6945
6946 unsafe impl
6947 fidl::encoding::Encode<
6948 NetworkContextGetEndpointManagerRequest,
6949 fidl::encoding::DefaultFuchsiaResourceDialect,
6950 > for &mut NetworkContextGetEndpointManagerRequest
6951 {
6952 #[inline]
6953 unsafe fn encode(
6954 self,
6955 encoder: &mut fidl::encoding::Encoder<
6956 '_,
6957 fidl::encoding::DefaultFuchsiaResourceDialect,
6958 >,
6959 offset: usize,
6960 _depth: fidl::encoding::Depth,
6961 ) -> fidl::Result<()> {
6962 encoder.debug_check_bounds::<NetworkContextGetEndpointManagerRequest>(offset);
6963 fidl::encoding::Encode::<NetworkContextGetEndpointManagerRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6965 (
6966 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.endp_manager),
6967 ),
6968 encoder, offset, _depth
6969 )
6970 }
6971 }
6972 unsafe impl<
6973 T0: fidl::encoding::Encode<
6974 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
6975 fidl::encoding::DefaultFuchsiaResourceDialect,
6976 >,
6977 >
6978 fidl::encoding::Encode<
6979 NetworkContextGetEndpointManagerRequest,
6980 fidl::encoding::DefaultFuchsiaResourceDialect,
6981 > for (T0,)
6982 {
6983 #[inline]
6984 unsafe fn encode(
6985 self,
6986 encoder: &mut fidl::encoding::Encoder<
6987 '_,
6988 fidl::encoding::DefaultFuchsiaResourceDialect,
6989 >,
6990 offset: usize,
6991 depth: fidl::encoding::Depth,
6992 ) -> fidl::Result<()> {
6993 encoder.debug_check_bounds::<NetworkContextGetEndpointManagerRequest>(offset);
6994 self.0.encode(encoder, offset + 0, depth)?;
6998 Ok(())
6999 }
7000 }
7001
7002 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7003 for NetworkContextGetEndpointManagerRequest
7004 {
7005 #[inline(always)]
7006 fn new_empty() -> Self {
7007 Self {
7008 endp_manager: fidl::new_empty!(
7009 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7010 fidl::encoding::DefaultFuchsiaResourceDialect
7011 ),
7012 }
7013 }
7014
7015 #[inline]
7016 unsafe fn decode(
7017 &mut self,
7018 decoder: &mut fidl::encoding::Decoder<
7019 '_,
7020 fidl::encoding::DefaultFuchsiaResourceDialect,
7021 >,
7022 offset: usize,
7023 _depth: fidl::encoding::Depth,
7024 ) -> fidl::Result<()> {
7025 decoder.debug_check_bounds::<Self>(offset);
7026 fidl::decode!(
7028 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7029 fidl::encoding::DefaultFuchsiaResourceDialect,
7030 &mut self.endp_manager,
7031 decoder,
7032 offset + 0,
7033 _depth
7034 )?;
7035 Ok(())
7036 }
7037 }
7038
7039 impl fidl::encoding::ResourceTypeMarker for NetworkContextGetNetworkManagerRequest {
7040 type Borrowed<'a> = &'a mut Self;
7041 fn take_or_borrow<'a>(
7042 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7043 ) -> Self::Borrowed<'a> {
7044 value
7045 }
7046 }
7047
7048 unsafe impl fidl::encoding::TypeMarker for NetworkContextGetNetworkManagerRequest {
7049 type Owned = Self;
7050
7051 #[inline(always)]
7052 fn inline_align(_context: fidl::encoding::Context) -> usize {
7053 4
7054 }
7055
7056 #[inline(always)]
7057 fn inline_size(_context: fidl::encoding::Context) -> usize {
7058 4
7059 }
7060 }
7061
7062 unsafe impl
7063 fidl::encoding::Encode<
7064 NetworkContextGetNetworkManagerRequest,
7065 fidl::encoding::DefaultFuchsiaResourceDialect,
7066 > for &mut NetworkContextGetNetworkManagerRequest
7067 {
7068 #[inline]
7069 unsafe fn encode(
7070 self,
7071 encoder: &mut fidl::encoding::Encoder<
7072 '_,
7073 fidl::encoding::DefaultFuchsiaResourceDialect,
7074 >,
7075 offset: usize,
7076 _depth: fidl::encoding::Depth,
7077 ) -> fidl::Result<()> {
7078 encoder.debug_check_bounds::<NetworkContextGetNetworkManagerRequest>(offset);
7079 fidl::encoding::Encode::<NetworkContextGetNetworkManagerRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
7081 (
7082 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.net_manager),
7083 ),
7084 encoder, offset, _depth
7085 )
7086 }
7087 }
7088 unsafe impl<
7089 T0: fidl::encoding::Encode<
7090 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7091 fidl::encoding::DefaultFuchsiaResourceDialect,
7092 >,
7093 >
7094 fidl::encoding::Encode<
7095 NetworkContextGetNetworkManagerRequest,
7096 fidl::encoding::DefaultFuchsiaResourceDialect,
7097 > for (T0,)
7098 {
7099 #[inline]
7100 unsafe fn encode(
7101 self,
7102 encoder: &mut fidl::encoding::Encoder<
7103 '_,
7104 fidl::encoding::DefaultFuchsiaResourceDialect,
7105 >,
7106 offset: usize,
7107 depth: fidl::encoding::Depth,
7108 ) -> fidl::Result<()> {
7109 encoder.debug_check_bounds::<NetworkContextGetNetworkManagerRequest>(offset);
7110 self.0.encode(encoder, offset + 0, depth)?;
7114 Ok(())
7115 }
7116 }
7117
7118 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7119 for NetworkContextGetNetworkManagerRequest
7120 {
7121 #[inline(always)]
7122 fn new_empty() -> Self {
7123 Self {
7124 net_manager: fidl::new_empty!(
7125 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7126 fidl::encoding::DefaultFuchsiaResourceDialect
7127 ),
7128 }
7129 }
7130
7131 #[inline]
7132 unsafe fn decode(
7133 &mut self,
7134 decoder: &mut fidl::encoding::Decoder<
7135 '_,
7136 fidl::encoding::DefaultFuchsiaResourceDialect,
7137 >,
7138 offset: usize,
7139 _depth: fidl::encoding::Depth,
7140 ) -> fidl::Result<()> {
7141 decoder.debug_check_bounds::<Self>(offset);
7142 fidl::decode!(
7144 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7145 fidl::encoding::DefaultFuchsiaResourceDialect,
7146 &mut self.net_manager,
7147 decoder,
7148 offset + 0,
7149 _depth
7150 )?;
7151 Ok(())
7152 }
7153 }
7154
7155 impl fidl::encoding::ResourceTypeMarker for NetworkContextSetupResponse {
7156 type Borrowed<'a> = &'a mut Self;
7157 fn take_or_borrow<'a>(
7158 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7159 ) -> Self::Borrowed<'a> {
7160 value
7161 }
7162 }
7163
7164 unsafe impl fidl::encoding::TypeMarker for NetworkContextSetupResponse {
7165 type Owned = Self;
7166
7167 #[inline(always)]
7168 fn inline_align(_context: fidl::encoding::Context) -> usize {
7169 4
7170 }
7171
7172 #[inline(always)]
7173 fn inline_size(_context: fidl::encoding::Context) -> usize {
7174 8
7175 }
7176 }
7177
7178 unsafe impl
7179 fidl::encoding::Encode<
7180 NetworkContextSetupResponse,
7181 fidl::encoding::DefaultFuchsiaResourceDialect,
7182 > for &mut NetworkContextSetupResponse
7183 {
7184 #[inline]
7185 unsafe fn encode(
7186 self,
7187 encoder: &mut fidl::encoding::Encoder<
7188 '_,
7189 fidl::encoding::DefaultFuchsiaResourceDialect,
7190 >,
7191 offset: usize,
7192 _depth: fidl::encoding::Depth,
7193 ) -> fidl::Result<()> {
7194 encoder.debug_check_bounds::<NetworkContextSetupResponse>(offset);
7195 fidl::encoding::Encode::<
7197 NetworkContextSetupResponse,
7198 fidl::encoding::DefaultFuchsiaResourceDialect,
7199 >::encode(
7200 (
7201 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
7202 <fidl::encoding::Optional<
7203 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7204 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7205 &mut self.setup_handle,
7206 ),
7207 ),
7208 encoder,
7209 offset,
7210 _depth,
7211 )
7212 }
7213 }
7214 unsafe impl<
7215 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
7216 T1: fidl::encoding::Encode<
7217 fidl::encoding::Optional<
7218 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7219 >,
7220 fidl::encoding::DefaultFuchsiaResourceDialect,
7221 >,
7222 >
7223 fidl::encoding::Encode<
7224 NetworkContextSetupResponse,
7225 fidl::encoding::DefaultFuchsiaResourceDialect,
7226 > for (T0, T1)
7227 {
7228 #[inline]
7229 unsafe fn encode(
7230 self,
7231 encoder: &mut fidl::encoding::Encoder<
7232 '_,
7233 fidl::encoding::DefaultFuchsiaResourceDialect,
7234 >,
7235 offset: usize,
7236 depth: fidl::encoding::Depth,
7237 ) -> fidl::Result<()> {
7238 encoder.debug_check_bounds::<NetworkContextSetupResponse>(offset);
7239 self.0.encode(encoder, offset + 0, depth)?;
7243 self.1.encode(encoder, offset + 4, depth)?;
7244 Ok(())
7245 }
7246 }
7247
7248 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7249 for NetworkContextSetupResponse
7250 {
7251 #[inline(always)]
7252 fn new_empty() -> Self {
7253 Self {
7254 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
7255 setup_handle: fidl::new_empty!(
7256 fidl::encoding::Optional<
7257 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7258 >,
7259 fidl::encoding::DefaultFuchsiaResourceDialect
7260 ),
7261 }
7262 }
7263
7264 #[inline]
7265 unsafe fn decode(
7266 &mut self,
7267 decoder: &mut fidl::encoding::Decoder<
7268 '_,
7269 fidl::encoding::DefaultFuchsiaResourceDialect,
7270 >,
7271 offset: usize,
7272 _depth: fidl::encoding::Depth,
7273 ) -> fidl::Result<()> {
7274 decoder.debug_check_bounds::<Self>(offset);
7275 fidl::decode!(
7277 i32,
7278 fidl::encoding::DefaultFuchsiaResourceDialect,
7279 &mut self.status,
7280 decoder,
7281 offset + 0,
7282 _depth
7283 )?;
7284 fidl::decode!(
7285 fidl::encoding::Optional<
7286 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7287 >,
7288 fidl::encoding::DefaultFuchsiaResourceDialect,
7289 &mut self.setup_handle,
7290 decoder,
7291 offset + 4,
7292 _depth
7293 )?;
7294 Ok(())
7295 }
7296 }
7297
7298 impl fidl::encoding::ResourceTypeMarker for NetworkCreateFakeEndpointRequest {
7299 type Borrowed<'a> = &'a mut Self;
7300 fn take_or_borrow<'a>(
7301 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7302 ) -> Self::Borrowed<'a> {
7303 value
7304 }
7305 }
7306
7307 unsafe impl fidl::encoding::TypeMarker for NetworkCreateFakeEndpointRequest {
7308 type Owned = Self;
7309
7310 #[inline(always)]
7311 fn inline_align(_context: fidl::encoding::Context) -> usize {
7312 4
7313 }
7314
7315 #[inline(always)]
7316 fn inline_size(_context: fidl::encoding::Context) -> usize {
7317 4
7318 }
7319 }
7320
7321 unsafe impl
7322 fidl::encoding::Encode<
7323 NetworkCreateFakeEndpointRequest,
7324 fidl::encoding::DefaultFuchsiaResourceDialect,
7325 > for &mut NetworkCreateFakeEndpointRequest
7326 {
7327 #[inline]
7328 unsafe fn encode(
7329 self,
7330 encoder: &mut fidl::encoding::Encoder<
7331 '_,
7332 fidl::encoding::DefaultFuchsiaResourceDialect,
7333 >,
7334 offset: usize,
7335 _depth: fidl::encoding::Depth,
7336 ) -> fidl::Result<()> {
7337 encoder.debug_check_bounds::<NetworkCreateFakeEndpointRequest>(offset);
7338 fidl::encoding::Encode::<NetworkCreateFakeEndpointRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
7340 (
7341 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.ep),
7342 ),
7343 encoder, offset, _depth
7344 )
7345 }
7346 }
7347 unsafe impl<
7348 T0: fidl::encoding::Encode<
7349 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7350 fidl::encoding::DefaultFuchsiaResourceDialect,
7351 >,
7352 >
7353 fidl::encoding::Encode<
7354 NetworkCreateFakeEndpointRequest,
7355 fidl::encoding::DefaultFuchsiaResourceDialect,
7356 > for (T0,)
7357 {
7358 #[inline]
7359 unsafe fn encode(
7360 self,
7361 encoder: &mut fidl::encoding::Encoder<
7362 '_,
7363 fidl::encoding::DefaultFuchsiaResourceDialect,
7364 >,
7365 offset: usize,
7366 depth: fidl::encoding::Depth,
7367 ) -> fidl::Result<()> {
7368 encoder.debug_check_bounds::<NetworkCreateFakeEndpointRequest>(offset);
7369 self.0.encode(encoder, offset + 0, depth)?;
7373 Ok(())
7374 }
7375 }
7376
7377 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7378 for NetworkCreateFakeEndpointRequest
7379 {
7380 #[inline(always)]
7381 fn new_empty() -> Self {
7382 Self {
7383 ep: fidl::new_empty!(
7384 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7385 fidl::encoding::DefaultFuchsiaResourceDialect
7386 ),
7387 }
7388 }
7389
7390 #[inline]
7391 unsafe fn decode(
7392 &mut self,
7393 decoder: &mut fidl::encoding::Decoder<
7394 '_,
7395 fidl::encoding::DefaultFuchsiaResourceDialect,
7396 >,
7397 offset: usize,
7398 _depth: fidl::encoding::Depth,
7399 ) -> fidl::Result<()> {
7400 decoder.debug_check_bounds::<Self>(offset);
7401 fidl::decode!(
7403 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7404 fidl::encoding::DefaultFuchsiaResourceDialect,
7405 &mut self.ep,
7406 decoder,
7407 offset + 0,
7408 _depth
7409 )?;
7410 Ok(())
7411 }
7412 }
7413
7414 impl fidl::encoding::ResourceTypeMarker for NetworkManagerCreateNetworkResponse {
7415 type Borrowed<'a> = &'a mut Self;
7416 fn take_or_borrow<'a>(
7417 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7418 ) -> Self::Borrowed<'a> {
7419 value
7420 }
7421 }
7422
7423 unsafe impl fidl::encoding::TypeMarker for NetworkManagerCreateNetworkResponse {
7424 type Owned = Self;
7425
7426 #[inline(always)]
7427 fn inline_align(_context: fidl::encoding::Context) -> usize {
7428 4
7429 }
7430
7431 #[inline(always)]
7432 fn inline_size(_context: fidl::encoding::Context) -> usize {
7433 8
7434 }
7435 }
7436
7437 unsafe impl
7438 fidl::encoding::Encode<
7439 NetworkManagerCreateNetworkResponse,
7440 fidl::encoding::DefaultFuchsiaResourceDialect,
7441 > for &mut NetworkManagerCreateNetworkResponse
7442 {
7443 #[inline]
7444 unsafe fn encode(
7445 self,
7446 encoder: &mut fidl::encoding::Encoder<
7447 '_,
7448 fidl::encoding::DefaultFuchsiaResourceDialect,
7449 >,
7450 offset: usize,
7451 _depth: fidl::encoding::Depth,
7452 ) -> fidl::Result<()> {
7453 encoder.debug_check_bounds::<NetworkManagerCreateNetworkResponse>(offset);
7454 fidl::encoding::Encode::<
7456 NetworkManagerCreateNetworkResponse,
7457 fidl::encoding::DefaultFuchsiaResourceDialect,
7458 >::encode(
7459 (
7460 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
7461 <fidl::encoding::Optional<
7462 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7463 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7464 &mut self.net
7465 ),
7466 ),
7467 encoder,
7468 offset,
7469 _depth,
7470 )
7471 }
7472 }
7473 unsafe impl<
7474 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
7475 T1: fidl::encoding::Encode<
7476 fidl::encoding::Optional<
7477 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7478 >,
7479 fidl::encoding::DefaultFuchsiaResourceDialect,
7480 >,
7481 >
7482 fidl::encoding::Encode<
7483 NetworkManagerCreateNetworkResponse,
7484 fidl::encoding::DefaultFuchsiaResourceDialect,
7485 > for (T0, T1)
7486 {
7487 #[inline]
7488 unsafe fn encode(
7489 self,
7490 encoder: &mut fidl::encoding::Encoder<
7491 '_,
7492 fidl::encoding::DefaultFuchsiaResourceDialect,
7493 >,
7494 offset: usize,
7495 depth: fidl::encoding::Depth,
7496 ) -> fidl::Result<()> {
7497 encoder.debug_check_bounds::<NetworkManagerCreateNetworkResponse>(offset);
7498 self.0.encode(encoder, offset + 0, depth)?;
7502 self.1.encode(encoder, offset + 4, depth)?;
7503 Ok(())
7504 }
7505 }
7506
7507 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7508 for NetworkManagerCreateNetworkResponse
7509 {
7510 #[inline(always)]
7511 fn new_empty() -> Self {
7512 Self {
7513 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
7514 net: fidl::new_empty!(
7515 fidl::encoding::Optional<
7516 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7517 >,
7518 fidl::encoding::DefaultFuchsiaResourceDialect
7519 ),
7520 }
7521 }
7522
7523 #[inline]
7524 unsafe fn decode(
7525 &mut self,
7526 decoder: &mut fidl::encoding::Decoder<
7527 '_,
7528 fidl::encoding::DefaultFuchsiaResourceDialect,
7529 >,
7530 offset: usize,
7531 _depth: fidl::encoding::Depth,
7532 ) -> fidl::Result<()> {
7533 decoder.debug_check_bounds::<Self>(offset);
7534 fidl::decode!(
7536 i32,
7537 fidl::encoding::DefaultFuchsiaResourceDialect,
7538 &mut self.status,
7539 decoder,
7540 offset + 0,
7541 _depth
7542 )?;
7543 fidl::decode!(
7544 fidl::encoding::Optional<
7545 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7546 >,
7547 fidl::encoding::DefaultFuchsiaResourceDialect,
7548 &mut self.net,
7549 decoder,
7550 offset + 4,
7551 _depth
7552 )?;
7553 Ok(())
7554 }
7555 }
7556
7557 impl fidl::encoding::ResourceTypeMarker for NetworkManagerGetNetworkResponse {
7558 type Borrowed<'a> = &'a mut Self;
7559 fn take_or_borrow<'a>(
7560 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7561 ) -> Self::Borrowed<'a> {
7562 value
7563 }
7564 }
7565
7566 unsafe impl fidl::encoding::TypeMarker for NetworkManagerGetNetworkResponse {
7567 type Owned = Self;
7568
7569 #[inline(always)]
7570 fn inline_align(_context: fidl::encoding::Context) -> usize {
7571 4
7572 }
7573
7574 #[inline(always)]
7575 fn inline_size(_context: fidl::encoding::Context) -> usize {
7576 4
7577 }
7578 }
7579
7580 unsafe impl
7581 fidl::encoding::Encode<
7582 NetworkManagerGetNetworkResponse,
7583 fidl::encoding::DefaultFuchsiaResourceDialect,
7584 > for &mut NetworkManagerGetNetworkResponse
7585 {
7586 #[inline]
7587 unsafe fn encode(
7588 self,
7589 encoder: &mut fidl::encoding::Encoder<
7590 '_,
7591 fidl::encoding::DefaultFuchsiaResourceDialect,
7592 >,
7593 offset: usize,
7594 _depth: fidl::encoding::Depth,
7595 ) -> fidl::Result<()> {
7596 encoder.debug_check_bounds::<NetworkManagerGetNetworkResponse>(offset);
7597 fidl::encoding::Encode::<
7599 NetworkManagerGetNetworkResponse,
7600 fidl::encoding::DefaultFuchsiaResourceDialect,
7601 >::encode(
7602 (<fidl::encoding::Optional<
7603 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7604 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7605 &mut self.net
7606 ),),
7607 encoder,
7608 offset,
7609 _depth,
7610 )
7611 }
7612 }
7613 unsafe impl<
7614 T0: fidl::encoding::Encode<
7615 fidl::encoding::Optional<
7616 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7617 >,
7618 fidl::encoding::DefaultFuchsiaResourceDialect,
7619 >,
7620 >
7621 fidl::encoding::Encode<
7622 NetworkManagerGetNetworkResponse,
7623 fidl::encoding::DefaultFuchsiaResourceDialect,
7624 > for (T0,)
7625 {
7626 #[inline]
7627 unsafe fn encode(
7628 self,
7629 encoder: &mut fidl::encoding::Encoder<
7630 '_,
7631 fidl::encoding::DefaultFuchsiaResourceDialect,
7632 >,
7633 offset: usize,
7634 depth: fidl::encoding::Depth,
7635 ) -> fidl::Result<()> {
7636 encoder.debug_check_bounds::<NetworkManagerGetNetworkResponse>(offset);
7637 self.0.encode(encoder, offset + 0, depth)?;
7641 Ok(())
7642 }
7643 }
7644
7645 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7646 for NetworkManagerGetNetworkResponse
7647 {
7648 #[inline(always)]
7649 fn new_empty() -> Self {
7650 Self {
7651 net: fidl::new_empty!(
7652 fidl::encoding::Optional<
7653 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7654 >,
7655 fidl::encoding::DefaultFuchsiaResourceDialect
7656 ),
7657 }
7658 }
7659
7660 #[inline]
7661 unsafe fn decode(
7662 &mut self,
7663 decoder: &mut fidl::encoding::Decoder<
7664 '_,
7665 fidl::encoding::DefaultFuchsiaResourceDialect,
7666 >,
7667 offset: usize,
7668 _depth: fidl::encoding::Depth,
7669 ) -> fidl::Result<()> {
7670 decoder.debug_check_bounds::<Self>(offset);
7671 fidl::decode!(
7673 fidl::encoding::Optional<
7674 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7675 >,
7676 fidl::encoding::DefaultFuchsiaResourceDialect,
7677 &mut self.net,
7678 decoder,
7679 offset + 0,
7680 _depth
7681 )?;
7682 Ok(())
7683 }
7684 }
7685}