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