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