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::DeviceMarker>,
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::DeviceMarker>,
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::DeviceMarker>,
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::DeviceMarker>,
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::DeviceMarker>,
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::DeviceMarker>,
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::DeviceMarker>,
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::DeviceMarker>,
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::DeviceMarker>,
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<fidl_fuchsia_hardware_network::DeviceMarker>,
6284 >,
6285 fidl::encoding::DefaultFuchsiaResourceDialect
6286 ),
6287 }
6288 }
6289
6290 #[inline]
6291 unsafe fn decode(
6292 &mut self,
6293 decoder: &mut fidl::encoding::Decoder<
6294 '_,
6295 fidl::encoding::DefaultFuchsiaResourceDialect,
6296 >,
6297 offset: usize,
6298 _depth: fidl::encoding::Depth,
6299 ) -> fidl::Result<()> {
6300 decoder.debug_check_bounds::<Self>(offset);
6301 fidl::decode!(
6303 fidl::encoding::Endpoint<
6304 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceMarker>,
6305 >,
6306 fidl::encoding::DefaultFuchsiaResourceDialect,
6307 &mut self.req,
6308 decoder,
6309 offset + 0,
6310 _depth
6311 )?;
6312 Ok(())
6313 }
6314 }
6315
6316 impl fidl::encoding::ResourceTypeMarker for EndpointGetPortRequest {
6317 type Borrowed<'a> = &'a mut Self;
6318 fn take_or_borrow<'a>(
6319 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6320 ) -> Self::Borrowed<'a> {
6321 value
6322 }
6323 }
6324
6325 unsafe impl fidl::encoding::TypeMarker for EndpointGetPortRequest {
6326 type Owned = Self;
6327
6328 #[inline(always)]
6329 fn inline_align(_context: fidl::encoding::Context) -> usize {
6330 4
6331 }
6332
6333 #[inline(always)]
6334 fn inline_size(_context: fidl::encoding::Context) -> usize {
6335 4
6336 }
6337 }
6338
6339 unsafe impl
6340 fidl::encoding::Encode<
6341 EndpointGetPortRequest,
6342 fidl::encoding::DefaultFuchsiaResourceDialect,
6343 > for &mut EndpointGetPortRequest
6344 {
6345 #[inline]
6346 unsafe fn encode(
6347 self,
6348 encoder: &mut fidl::encoding::Encoder<
6349 '_,
6350 fidl::encoding::DefaultFuchsiaResourceDialect,
6351 >,
6352 offset: usize,
6353 _depth: fidl::encoding::Depth,
6354 ) -> fidl::Result<()> {
6355 encoder.debug_check_bounds::<EndpointGetPortRequest>(offset);
6356 fidl::encoding::Encode::<
6358 EndpointGetPortRequest,
6359 fidl::encoding::DefaultFuchsiaResourceDialect,
6360 >::encode(
6361 (<fidl::encoding::Endpoint<
6362 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6363 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6364 &mut self.port
6365 ),),
6366 encoder,
6367 offset,
6368 _depth,
6369 )
6370 }
6371 }
6372 unsafe impl<
6373 T0: fidl::encoding::Encode<
6374 fidl::encoding::Endpoint<
6375 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6376 >,
6377 fidl::encoding::DefaultFuchsiaResourceDialect,
6378 >,
6379 >
6380 fidl::encoding::Encode<
6381 EndpointGetPortRequest,
6382 fidl::encoding::DefaultFuchsiaResourceDialect,
6383 > for (T0,)
6384 {
6385 #[inline]
6386 unsafe fn encode(
6387 self,
6388 encoder: &mut fidl::encoding::Encoder<
6389 '_,
6390 fidl::encoding::DefaultFuchsiaResourceDialect,
6391 >,
6392 offset: usize,
6393 depth: fidl::encoding::Depth,
6394 ) -> fidl::Result<()> {
6395 encoder.debug_check_bounds::<EndpointGetPortRequest>(offset);
6396 self.0.encode(encoder, offset + 0, depth)?;
6400 Ok(())
6401 }
6402 }
6403
6404 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6405 for EndpointGetPortRequest
6406 {
6407 #[inline(always)]
6408 fn new_empty() -> Self {
6409 Self {
6410 port: fidl::new_empty!(
6411 fidl::encoding::Endpoint<
6412 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6413 >,
6414 fidl::encoding::DefaultFuchsiaResourceDialect
6415 ),
6416 }
6417 }
6418
6419 #[inline]
6420 unsafe fn decode(
6421 &mut self,
6422 decoder: &mut fidl::encoding::Decoder<
6423 '_,
6424 fidl::encoding::DefaultFuchsiaResourceDialect,
6425 >,
6426 offset: usize,
6427 _depth: fidl::encoding::Depth,
6428 ) -> fidl::Result<()> {
6429 decoder.debug_check_bounds::<Self>(offset);
6430 fidl::decode!(
6432 fidl::encoding::Endpoint<
6433 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6434 >,
6435 fidl::encoding::DefaultFuchsiaResourceDialect,
6436 &mut self.port,
6437 decoder,
6438 offset + 0,
6439 _depth
6440 )?;
6441 Ok(())
6442 }
6443 }
6444
6445 impl fidl::encoding::ResourceTypeMarker for EndpointGetProxyRequest {
6446 type Borrowed<'a> = &'a mut Self;
6447 fn take_or_borrow<'a>(
6448 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6449 ) -> Self::Borrowed<'a> {
6450 value
6451 }
6452 }
6453
6454 unsafe impl fidl::encoding::TypeMarker for EndpointGetProxyRequest {
6455 type Owned = Self;
6456
6457 #[inline(always)]
6458 fn inline_align(_context: fidl::encoding::Context) -> usize {
6459 4
6460 }
6461
6462 #[inline(always)]
6463 fn inline_size(_context: fidl::encoding::Context) -> usize {
6464 4
6465 }
6466 }
6467
6468 unsafe impl
6469 fidl::encoding::Encode<
6470 EndpointGetProxyRequest,
6471 fidl::encoding::DefaultFuchsiaResourceDialect,
6472 > for &mut EndpointGetProxyRequest
6473 {
6474 #[inline]
6475 unsafe fn encode(
6476 self,
6477 encoder: &mut fidl::encoding::Encoder<
6478 '_,
6479 fidl::encoding::DefaultFuchsiaResourceDialect,
6480 >,
6481 offset: usize,
6482 _depth: fidl::encoding::Depth,
6483 ) -> fidl::Result<()> {
6484 encoder.debug_check_bounds::<EndpointGetProxyRequest>(offset);
6485 fidl::encoding::Encode::<EndpointGetProxyRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6487 (
6488 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.proxy),
6489 ),
6490 encoder, offset, _depth
6491 )
6492 }
6493 }
6494 unsafe impl<
6495 T0: fidl::encoding::Encode<
6496 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6497 fidl::encoding::DefaultFuchsiaResourceDialect,
6498 >,
6499 >
6500 fidl::encoding::Encode<
6501 EndpointGetProxyRequest,
6502 fidl::encoding::DefaultFuchsiaResourceDialect,
6503 > for (T0,)
6504 {
6505 #[inline]
6506 unsafe fn encode(
6507 self,
6508 encoder: &mut fidl::encoding::Encoder<
6509 '_,
6510 fidl::encoding::DefaultFuchsiaResourceDialect,
6511 >,
6512 offset: usize,
6513 depth: fidl::encoding::Depth,
6514 ) -> fidl::Result<()> {
6515 encoder.debug_check_bounds::<EndpointGetProxyRequest>(offset);
6516 self.0.encode(encoder, offset + 0, depth)?;
6520 Ok(())
6521 }
6522 }
6523
6524 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6525 for EndpointGetProxyRequest
6526 {
6527 #[inline(always)]
6528 fn new_empty() -> Self {
6529 Self {
6530 proxy: fidl::new_empty!(
6531 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6532 fidl::encoding::DefaultFuchsiaResourceDialect
6533 ),
6534 }
6535 }
6536
6537 #[inline]
6538 unsafe fn decode(
6539 &mut self,
6540 decoder: &mut fidl::encoding::Decoder<
6541 '_,
6542 fidl::encoding::DefaultFuchsiaResourceDialect,
6543 >,
6544 offset: usize,
6545 _depth: fidl::encoding::Depth,
6546 ) -> fidl::Result<()> {
6547 decoder.debug_check_bounds::<Self>(offset);
6548 fidl::decode!(
6550 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6551 fidl::encoding::DefaultFuchsiaResourceDialect,
6552 &mut self.proxy,
6553 decoder,
6554 offset + 0,
6555 _depth
6556 )?;
6557 Ok(())
6558 }
6559 }
6560
6561 impl fidl::encoding::ResourceTypeMarker for EndpointManagerCreateEndpointResponse {
6562 type Borrowed<'a> = &'a mut Self;
6563 fn take_or_borrow<'a>(
6564 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6565 ) -> Self::Borrowed<'a> {
6566 value
6567 }
6568 }
6569
6570 unsafe impl fidl::encoding::TypeMarker for EndpointManagerCreateEndpointResponse {
6571 type Owned = Self;
6572
6573 #[inline(always)]
6574 fn inline_align(_context: fidl::encoding::Context) -> usize {
6575 4
6576 }
6577
6578 #[inline(always)]
6579 fn inline_size(_context: fidl::encoding::Context) -> usize {
6580 8
6581 }
6582 }
6583
6584 unsafe impl
6585 fidl::encoding::Encode<
6586 EndpointManagerCreateEndpointResponse,
6587 fidl::encoding::DefaultFuchsiaResourceDialect,
6588 > for &mut EndpointManagerCreateEndpointResponse
6589 {
6590 #[inline]
6591 unsafe fn encode(
6592 self,
6593 encoder: &mut fidl::encoding::Encoder<
6594 '_,
6595 fidl::encoding::DefaultFuchsiaResourceDialect,
6596 >,
6597 offset: usize,
6598 _depth: fidl::encoding::Depth,
6599 ) -> fidl::Result<()> {
6600 encoder.debug_check_bounds::<EndpointManagerCreateEndpointResponse>(offset);
6601 fidl::encoding::Encode::<
6603 EndpointManagerCreateEndpointResponse,
6604 fidl::encoding::DefaultFuchsiaResourceDialect,
6605 >::encode(
6606 (
6607 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
6608 <fidl::encoding::Optional<
6609 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6610 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6611 &mut self.endpoint
6612 ),
6613 ),
6614 encoder,
6615 offset,
6616 _depth,
6617 )
6618 }
6619 }
6620 unsafe impl<
6621 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
6622 T1: fidl::encoding::Encode<
6623 fidl::encoding::Optional<
6624 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6625 >,
6626 fidl::encoding::DefaultFuchsiaResourceDialect,
6627 >,
6628 >
6629 fidl::encoding::Encode<
6630 EndpointManagerCreateEndpointResponse,
6631 fidl::encoding::DefaultFuchsiaResourceDialect,
6632 > for (T0, T1)
6633 {
6634 #[inline]
6635 unsafe fn encode(
6636 self,
6637 encoder: &mut fidl::encoding::Encoder<
6638 '_,
6639 fidl::encoding::DefaultFuchsiaResourceDialect,
6640 >,
6641 offset: usize,
6642 depth: fidl::encoding::Depth,
6643 ) -> fidl::Result<()> {
6644 encoder.debug_check_bounds::<EndpointManagerCreateEndpointResponse>(offset);
6645 self.0.encode(encoder, offset + 0, depth)?;
6649 self.1.encode(encoder, offset + 4, depth)?;
6650 Ok(())
6651 }
6652 }
6653
6654 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6655 for EndpointManagerCreateEndpointResponse
6656 {
6657 #[inline(always)]
6658 fn new_empty() -> Self {
6659 Self {
6660 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
6661 endpoint: fidl::new_empty!(
6662 fidl::encoding::Optional<
6663 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6664 >,
6665 fidl::encoding::DefaultFuchsiaResourceDialect
6666 ),
6667 }
6668 }
6669
6670 #[inline]
6671 unsafe fn decode(
6672 &mut self,
6673 decoder: &mut fidl::encoding::Decoder<
6674 '_,
6675 fidl::encoding::DefaultFuchsiaResourceDialect,
6676 >,
6677 offset: usize,
6678 _depth: fidl::encoding::Depth,
6679 ) -> fidl::Result<()> {
6680 decoder.debug_check_bounds::<Self>(offset);
6681 fidl::decode!(
6683 i32,
6684 fidl::encoding::DefaultFuchsiaResourceDialect,
6685 &mut self.status,
6686 decoder,
6687 offset + 0,
6688 _depth
6689 )?;
6690 fidl::decode!(
6691 fidl::encoding::Optional<
6692 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6693 >,
6694 fidl::encoding::DefaultFuchsiaResourceDialect,
6695 &mut self.endpoint,
6696 decoder,
6697 offset + 4,
6698 _depth
6699 )?;
6700 Ok(())
6701 }
6702 }
6703
6704 impl fidl::encoding::ResourceTypeMarker for EndpointManagerGetEndpointResponse {
6705 type Borrowed<'a> = &'a mut Self;
6706 fn take_or_borrow<'a>(
6707 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6708 ) -> Self::Borrowed<'a> {
6709 value
6710 }
6711 }
6712
6713 unsafe impl fidl::encoding::TypeMarker for EndpointManagerGetEndpointResponse {
6714 type Owned = Self;
6715
6716 #[inline(always)]
6717 fn inline_align(_context: fidl::encoding::Context) -> usize {
6718 4
6719 }
6720
6721 #[inline(always)]
6722 fn inline_size(_context: fidl::encoding::Context) -> usize {
6723 4
6724 }
6725 }
6726
6727 unsafe impl
6728 fidl::encoding::Encode<
6729 EndpointManagerGetEndpointResponse,
6730 fidl::encoding::DefaultFuchsiaResourceDialect,
6731 > for &mut EndpointManagerGetEndpointResponse
6732 {
6733 #[inline]
6734 unsafe fn encode(
6735 self,
6736 encoder: &mut fidl::encoding::Encoder<
6737 '_,
6738 fidl::encoding::DefaultFuchsiaResourceDialect,
6739 >,
6740 offset: usize,
6741 _depth: fidl::encoding::Depth,
6742 ) -> fidl::Result<()> {
6743 encoder.debug_check_bounds::<EndpointManagerGetEndpointResponse>(offset);
6744 fidl::encoding::Encode::<
6746 EndpointManagerGetEndpointResponse,
6747 fidl::encoding::DefaultFuchsiaResourceDialect,
6748 >::encode(
6749 (<fidl::encoding::Optional<
6750 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6751 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6752 &mut self.endpoint
6753 ),),
6754 encoder,
6755 offset,
6756 _depth,
6757 )
6758 }
6759 }
6760 unsafe impl<
6761 T0: fidl::encoding::Encode<
6762 fidl::encoding::Optional<
6763 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6764 >,
6765 fidl::encoding::DefaultFuchsiaResourceDialect,
6766 >,
6767 >
6768 fidl::encoding::Encode<
6769 EndpointManagerGetEndpointResponse,
6770 fidl::encoding::DefaultFuchsiaResourceDialect,
6771 > for (T0,)
6772 {
6773 #[inline]
6774 unsafe fn encode(
6775 self,
6776 encoder: &mut fidl::encoding::Encoder<
6777 '_,
6778 fidl::encoding::DefaultFuchsiaResourceDialect,
6779 >,
6780 offset: usize,
6781 depth: fidl::encoding::Depth,
6782 ) -> fidl::Result<()> {
6783 encoder.debug_check_bounds::<EndpointManagerGetEndpointResponse>(offset);
6784 self.0.encode(encoder, offset + 0, depth)?;
6788 Ok(())
6789 }
6790 }
6791
6792 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6793 for EndpointManagerGetEndpointResponse
6794 {
6795 #[inline(always)]
6796 fn new_empty() -> Self {
6797 Self {
6798 endpoint: fidl::new_empty!(
6799 fidl::encoding::Optional<
6800 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6801 >,
6802 fidl::encoding::DefaultFuchsiaResourceDialect
6803 ),
6804 }
6805 }
6806
6807 #[inline]
6808 unsafe fn decode(
6809 &mut self,
6810 decoder: &mut fidl::encoding::Decoder<
6811 '_,
6812 fidl::encoding::DefaultFuchsiaResourceDialect,
6813 >,
6814 offset: usize,
6815 _depth: fidl::encoding::Depth,
6816 ) -> fidl::Result<()> {
6817 decoder.debug_check_bounds::<Self>(offset);
6818 fidl::decode!(
6820 fidl::encoding::Optional<
6821 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6822 >,
6823 fidl::encoding::DefaultFuchsiaResourceDialect,
6824 &mut self.endpoint,
6825 decoder,
6826 offset + 0,
6827 _depth
6828 )?;
6829 Ok(())
6830 }
6831 }
6832
6833 impl fidl::encoding::ResourceTypeMarker for NetworkContextCloneRequest {
6834 type Borrowed<'a> = &'a mut Self;
6835 fn take_or_borrow<'a>(
6836 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6837 ) -> Self::Borrowed<'a> {
6838 value
6839 }
6840 }
6841
6842 unsafe impl fidl::encoding::TypeMarker for NetworkContextCloneRequest {
6843 type Owned = Self;
6844
6845 #[inline(always)]
6846 fn inline_align(_context: fidl::encoding::Context) -> usize {
6847 4
6848 }
6849
6850 #[inline(always)]
6851 fn inline_size(_context: fidl::encoding::Context) -> usize {
6852 4
6853 }
6854 }
6855
6856 unsafe impl
6857 fidl::encoding::Encode<
6858 NetworkContextCloneRequest,
6859 fidl::encoding::DefaultFuchsiaResourceDialect,
6860 > for &mut NetworkContextCloneRequest
6861 {
6862 #[inline]
6863 unsafe fn encode(
6864 self,
6865 encoder: &mut fidl::encoding::Encoder<
6866 '_,
6867 fidl::encoding::DefaultFuchsiaResourceDialect,
6868 >,
6869 offset: usize,
6870 _depth: fidl::encoding::Depth,
6871 ) -> fidl::Result<()> {
6872 encoder.debug_check_bounds::<NetworkContextCloneRequest>(offset);
6873 fidl::encoding::Encode::<NetworkContextCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6875 (
6876 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.network_context),
6877 ),
6878 encoder, offset, _depth
6879 )
6880 }
6881 }
6882 unsafe impl<
6883 T0: fidl::encoding::Encode<
6884 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6885 fidl::encoding::DefaultFuchsiaResourceDialect,
6886 >,
6887 >
6888 fidl::encoding::Encode<
6889 NetworkContextCloneRequest,
6890 fidl::encoding::DefaultFuchsiaResourceDialect,
6891 > for (T0,)
6892 {
6893 #[inline]
6894 unsafe fn encode(
6895 self,
6896 encoder: &mut fidl::encoding::Encoder<
6897 '_,
6898 fidl::encoding::DefaultFuchsiaResourceDialect,
6899 >,
6900 offset: usize,
6901 depth: fidl::encoding::Depth,
6902 ) -> fidl::Result<()> {
6903 encoder.debug_check_bounds::<NetworkContextCloneRequest>(offset);
6904 self.0.encode(encoder, offset + 0, depth)?;
6908 Ok(())
6909 }
6910 }
6911
6912 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6913 for NetworkContextCloneRequest
6914 {
6915 #[inline(always)]
6916 fn new_empty() -> Self {
6917 Self {
6918 network_context: fidl::new_empty!(
6919 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6920 fidl::encoding::DefaultFuchsiaResourceDialect
6921 ),
6922 }
6923 }
6924
6925 #[inline]
6926 unsafe fn decode(
6927 &mut self,
6928 decoder: &mut fidl::encoding::Decoder<
6929 '_,
6930 fidl::encoding::DefaultFuchsiaResourceDialect,
6931 >,
6932 offset: usize,
6933 _depth: fidl::encoding::Depth,
6934 ) -> fidl::Result<()> {
6935 decoder.debug_check_bounds::<Self>(offset);
6936 fidl::decode!(
6938 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6939 fidl::encoding::DefaultFuchsiaResourceDialect,
6940 &mut self.network_context,
6941 decoder,
6942 offset + 0,
6943 _depth
6944 )?;
6945 Ok(())
6946 }
6947 }
6948
6949 impl fidl::encoding::ResourceTypeMarker for NetworkContextGetEndpointManagerRequest {
6950 type Borrowed<'a> = &'a mut Self;
6951 fn take_or_borrow<'a>(
6952 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6953 ) -> Self::Borrowed<'a> {
6954 value
6955 }
6956 }
6957
6958 unsafe impl fidl::encoding::TypeMarker for NetworkContextGetEndpointManagerRequest {
6959 type Owned = Self;
6960
6961 #[inline(always)]
6962 fn inline_align(_context: fidl::encoding::Context) -> usize {
6963 4
6964 }
6965
6966 #[inline(always)]
6967 fn inline_size(_context: fidl::encoding::Context) -> usize {
6968 4
6969 }
6970 }
6971
6972 unsafe impl
6973 fidl::encoding::Encode<
6974 NetworkContextGetEndpointManagerRequest,
6975 fidl::encoding::DefaultFuchsiaResourceDialect,
6976 > for &mut NetworkContextGetEndpointManagerRequest
6977 {
6978 #[inline]
6979 unsafe fn encode(
6980 self,
6981 encoder: &mut fidl::encoding::Encoder<
6982 '_,
6983 fidl::encoding::DefaultFuchsiaResourceDialect,
6984 >,
6985 offset: usize,
6986 _depth: fidl::encoding::Depth,
6987 ) -> fidl::Result<()> {
6988 encoder.debug_check_bounds::<NetworkContextGetEndpointManagerRequest>(offset);
6989 fidl::encoding::Encode::<NetworkContextGetEndpointManagerRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6991 (
6992 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.endp_manager),
6993 ),
6994 encoder, offset, _depth
6995 )
6996 }
6997 }
6998 unsafe impl<
6999 T0: fidl::encoding::Encode<
7000 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7001 fidl::encoding::DefaultFuchsiaResourceDialect,
7002 >,
7003 >
7004 fidl::encoding::Encode<
7005 NetworkContextGetEndpointManagerRequest,
7006 fidl::encoding::DefaultFuchsiaResourceDialect,
7007 > for (T0,)
7008 {
7009 #[inline]
7010 unsafe fn encode(
7011 self,
7012 encoder: &mut fidl::encoding::Encoder<
7013 '_,
7014 fidl::encoding::DefaultFuchsiaResourceDialect,
7015 >,
7016 offset: usize,
7017 depth: fidl::encoding::Depth,
7018 ) -> fidl::Result<()> {
7019 encoder.debug_check_bounds::<NetworkContextGetEndpointManagerRequest>(offset);
7020 self.0.encode(encoder, offset + 0, depth)?;
7024 Ok(())
7025 }
7026 }
7027
7028 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7029 for NetworkContextGetEndpointManagerRequest
7030 {
7031 #[inline(always)]
7032 fn new_empty() -> Self {
7033 Self {
7034 endp_manager: fidl::new_empty!(
7035 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7036 fidl::encoding::DefaultFuchsiaResourceDialect
7037 ),
7038 }
7039 }
7040
7041 #[inline]
7042 unsafe fn decode(
7043 &mut self,
7044 decoder: &mut fidl::encoding::Decoder<
7045 '_,
7046 fidl::encoding::DefaultFuchsiaResourceDialect,
7047 >,
7048 offset: usize,
7049 _depth: fidl::encoding::Depth,
7050 ) -> fidl::Result<()> {
7051 decoder.debug_check_bounds::<Self>(offset);
7052 fidl::decode!(
7054 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7055 fidl::encoding::DefaultFuchsiaResourceDialect,
7056 &mut self.endp_manager,
7057 decoder,
7058 offset + 0,
7059 _depth
7060 )?;
7061 Ok(())
7062 }
7063 }
7064
7065 impl fidl::encoding::ResourceTypeMarker for NetworkContextGetNetworkManagerRequest {
7066 type Borrowed<'a> = &'a mut Self;
7067 fn take_or_borrow<'a>(
7068 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7069 ) -> Self::Borrowed<'a> {
7070 value
7071 }
7072 }
7073
7074 unsafe impl fidl::encoding::TypeMarker for NetworkContextGetNetworkManagerRequest {
7075 type Owned = Self;
7076
7077 #[inline(always)]
7078 fn inline_align(_context: fidl::encoding::Context) -> usize {
7079 4
7080 }
7081
7082 #[inline(always)]
7083 fn inline_size(_context: fidl::encoding::Context) -> usize {
7084 4
7085 }
7086 }
7087
7088 unsafe impl
7089 fidl::encoding::Encode<
7090 NetworkContextGetNetworkManagerRequest,
7091 fidl::encoding::DefaultFuchsiaResourceDialect,
7092 > for &mut NetworkContextGetNetworkManagerRequest
7093 {
7094 #[inline]
7095 unsafe fn encode(
7096 self,
7097 encoder: &mut fidl::encoding::Encoder<
7098 '_,
7099 fidl::encoding::DefaultFuchsiaResourceDialect,
7100 >,
7101 offset: usize,
7102 _depth: fidl::encoding::Depth,
7103 ) -> fidl::Result<()> {
7104 encoder.debug_check_bounds::<NetworkContextGetNetworkManagerRequest>(offset);
7105 fidl::encoding::Encode::<NetworkContextGetNetworkManagerRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
7107 (
7108 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.net_manager),
7109 ),
7110 encoder, offset, _depth
7111 )
7112 }
7113 }
7114 unsafe impl<
7115 T0: fidl::encoding::Encode<
7116 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7117 fidl::encoding::DefaultFuchsiaResourceDialect,
7118 >,
7119 >
7120 fidl::encoding::Encode<
7121 NetworkContextGetNetworkManagerRequest,
7122 fidl::encoding::DefaultFuchsiaResourceDialect,
7123 > for (T0,)
7124 {
7125 #[inline]
7126 unsafe fn encode(
7127 self,
7128 encoder: &mut fidl::encoding::Encoder<
7129 '_,
7130 fidl::encoding::DefaultFuchsiaResourceDialect,
7131 >,
7132 offset: usize,
7133 depth: fidl::encoding::Depth,
7134 ) -> fidl::Result<()> {
7135 encoder.debug_check_bounds::<NetworkContextGetNetworkManagerRequest>(offset);
7136 self.0.encode(encoder, offset + 0, depth)?;
7140 Ok(())
7141 }
7142 }
7143
7144 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7145 for NetworkContextGetNetworkManagerRequest
7146 {
7147 #[inline(always)]
7148 fn new_empty() -> Self {
7149 Self {
7150 net_manager: fidl::new_empty!(
7151 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7152 fidl::encoding::DefaultFuchsiaResourceDialect
7153 ),
7154 }
7155 }
7156
7157 #[inline]
7158 unsafe fn decode(
7159 &mut self,
7160 decoder: &mut fidl::encoding::Decoder<
7161 '_,
7162 fidl::encoding::DefaultFuchsiaResourceDialect,
7163 >,
7164 offset: usize,
7165 _depth: fidl::encoding::Depth,
7166 ) -> fidl::Result<()> {
7167 decoder.debug_check_bounds::<Self>(offset);
7168 fidl::decode!(
7170 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7171 fidl::encoding::DefaultFuchsiaResourceDialect,
7172 &mut self.net_manager,
7173 decoder,
7174 offset + 0,
7175 _depth
7176 )?;
7177 Ok(())
7178 }
7179 }
7180
7181 impl fidl::encoding::ResourceTypeMarker for NetworkContextSetupResponse {
7182 type Borrowed<'a> = &'a mut Self;
7183 fn take_or_borrow<'a>(
7184 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7185 ) -> Self::Borrowed<'a> {
7186 value
7187 }
7188 }
7189
7190 unsafe impl fidl::encoding::TypeMarker for NetworkContextSetupResponse {
7191 type Owned = Self;
7192
7193 #[inline(always)]
7194 fn inline_align(_context: fidl::encoding::Context) -> usize {
7195 4
7196 }
7197
7198 #[inline(always)]
7199 fn inline_size(_context: fidl::encoding::Context) -> usize {
7200 8
7201 }
7202 }
7203
7204 unsafe impl
7205 fidl::encoding::Encode<
7206 NetworkContextSetupResponse,
7207 fidl::encoding::DefaultFuchsiaResourceDialect,
7208 > for &mut NetworkContextSetupResponse
7209 {
7210 #[inline]
7211 unsafe fn encode(
7212 self,
7213 encoder: &mut fidl::encoding::Encoder<
7214 '_,
7215 fidl::encoding::DefaultFuchsiaResourceDialect,
7216 >,
7217 offset: usize,
7218 _depth: fidl::encoding::Depth,
7219 ) -> fidl::Result<()> {
7220 encoder.debug_check_bounds::<NetworkContextSetupResponse>(offset);
7221 fidl::encoding::Encode::<
7223 NetworkContextSetupResponse,
7224 fidl::encoding::DefaultFuchsiaResourceDialect,
7225 >::encode(
7226 (
7227 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
7228 <fidl::encoding::Optional<
7229 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7230 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7231 &mut self.setup_handle,
7232 ),
7233 ),
7234 encoder,
7235 offset,
7236 _depth,
7237 )
7238 }
7239 }
7240 unsafe impl<
7241 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
7242 T1: fidl::encoding::Encode<
7243 fidl::encoding::Optional<
7244 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7245 >,
7246 fidl::encoding::DefaultFuchsiaResourceDialect,
7247 >,
7248 >
7249 fidl::encoding::Encode<
7250 NetworkContextSetupResponse,
7251 fidl::encoding::DefaultFuchsiaResourceDialect,
7252 > for (T0, T1)
7253 {
7254 #[inline]
7255 unsafe fn encode(
7256 self,
7257 encoder: &mut fidl::encoding::Encoder<
7258 '_,
7259 fidl::encoding::DefaultFuchsiaResourceDialect,
7260 >,
7261 offset: usize,
7262 depth: fidl::encoding::Depth,
7263 ) -> fidl::Result<()> {
7264 encoder.debug_check_bounds::<NetworkContextSetupResponse>(offset);
7265 self.0.encode(encoder, offset + 0, depth)?;
7269 self.1.encode(encoder, offset + 4, depth)?;
7270 Ok(())
7271 }
7272 }
7273
7274 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7275 for NetworkContextSetupResponse
7276 {
7277 #[inline(always)]
7278 fn new_empty() -> Self {
7279 Self {
7280 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
7281 setup_handle: fidl::new_empty!(
7282 fidl::encoding::Optional<
7283 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7284 >,
7285 fidl::encoding::DefaultFuchsiaResourceDialect
7286 ),
7287 }
7288 }
7289
7290 #[inline]
7291 unsafe fn decode(
7292 &mut self,
7293 decoder: &mut fidl::encoding::Decoder<
7294 '_,
7295 fidl::encoding::DefaultFuchsiaResourceDialect,
7296 >,
7297 offset: usize,
7298 _depth: fidl::encoding::Depth,
7299 ) -> fidl::Result<()> {
7300 decoder.debug_check_bounds::<Self>(offset);
7301 fidl::decode!(
7303 i32,
7304 fidl::encoding::DefaultFuchsiaResourceDialect,
7305 &mut self.status,
7306 decoder,
7307 offset + 0,
7308 _depth
7309 )?;
7310 fidl::decode!(
7311 fidl::encoding::Optional<
7312 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7313 >,
7314 fidl::encoding::DefaultFuchsiaResourceDialect,
7315 &mut self.setup_handle,
7316 decoder,
7317 offset + 4,
7318 _depth
7319 )?;
7320 Ok(())
7321 }
7322 }
7323
7324 impl fidl::encoding::ResourceTypeMarker for NetworkCreateFakeEndpointRequest {
7325 type Borrowed<'a> = &'a mut Self;
7326 fn take_or_borrow<'a>(
7327 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7328 ) -> Self::Borrowed<'a> {
7329 value
7330 }
7331 }
7332
7333 unsafe impl fidl::encoding::TypeMarker for NetworkCreateFakeEndpointRequest {
7334 type Owned = Self;
7335
7336 #[inline(always)]
7337 fn inline_align(_context: fidl::encoding::Context) -> usize {
7338 4
7339 }
7340
7341 #[inline(always)]
7342 fn inline_size(_context: fidl::encoding::Context) -> usize {
7343 4
7344 }
7345 }
7346
7347 unsafe impl
7348 fidl::encoding::Encode<
7349 NetworkCreateFakeEndpointRequest,
7350 fidl::encoding::DefaultFuchsiaResourceDialect,
7351 > for &mut NetworkCreateFakeEndpointRequest
7352 {
7353 #[inline]
7354 unsafe fn encode(
7355 self,
7356 encoder: &mut fidl::encoding::Encoder<
7357 '_,
7358 fidl::encoding::DefaultFuchsiaResourceDialect,
7359 >,
7360 offset: usize,
7361 _depth: fidl::encoding::Depth,
7362 ) -> fidl::Result<()> {
7363 encoder.debug_check_bounds::<NetworkCreateFakeEndpointRequest>(offset);
7364 fidl::encoding::Encode::<NetworkCreateFakeEndpointRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
7366 (
7367 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.ep),
7368 ),
7369 encoder, offset, _depth
7370 )
7371 }
7372 }
7373 unsafe impl<
7374 T0: fidl::encoding::Encode<
7375 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7376 fidl::encoding::DefaultFuchsiaResourceDialect,
7377 >,
7378 >
7379 fidl::encoding::Encode<
7380 NetworkCreateFakeEndpointRequest,
7381 fidl::encoding::DefaultFuchsiaResourceDialect,
7382 > for (T0,)
7383 {
7384 #[inline]
7385 unsafe fn encode(
7386 self,
7387 encoder: &mut fidl::encoding::Encoder<
7388 '_,
7389 fidl::encoding::DefaultFuchsiaResourceDialect,
7390 >,
7391 offset: usize,
7392 depth: fidl::encoding::Depth,
7393 ) -> fidl::Result<()> {
7394 encoder.debug_check_bounds::<NetworkCreateFakeEndpointRequest>(offset);
7395 self.0.encode(encoder, offset + 0, depth)?;
7399 Ok(())
7400 }
7401 }
7402
7403 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7404 for NetworkCreateFakeEndpointRequest
7405 {
7406 #[inline(always)]
7407 fn new_empty() -> Self {
7408 Self {
7409 ep: fidl::new_empty!(
7410 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7411 fidl::encoding::DefaultFuchsiaResourceDialect
7412 ),
7413 }
7414 }
7415
7416 #[inline]
7417 unsafe fn decode(
7418 &mut self,
7419 decoder: &mut fidl::encoding::Decoder<
7420 '_,
7421 fidl::encoding::DefaultFuchsiaResourceDialect,
7422 >,
7423 offset: usize,
7424 _depth: fidl::encoding::Depth,
7425 ) -> fidl::Result<()> {
7426 decoder.debug_check_bounds::<Self>(offset);
7427 fidl::decode!(
7429 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7430 fidl::encoding::DefaultFuchsiaResourceDialect,
7431 &mut self.ep,
7432 decoder,
7433 offset + 0,
7434 _depth
7435 )?;
7436 Ok(())
7437 }
7438 }
7439
7440 impl fidl::encoding::ResourceTypeMarker for NetworkManagerCreateNetworkResponse {
7441 type Borrowed<'a> = &'a mut Self;
7442 fn take_or_borrow<'a>(
7443 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7444 ) -> Self::Borrowed<'a> {
7445 value
7446 }
7447 }
7448
7449 unsafe impl fidl::encoding::TypeMarker for NetworkManagerCreateNetworkResponse {
7450 type Owned = Self;
7451
7452 #[inline(always)]
7453 fn inline_align(_context: fidl::encoding::Context) -> usize {
7454 4
7455 }
7456
7457 #[inline(always)]
7458 fn inline_size(_context: fidl::encoding::Context) -> usize {
7459 8
7460 }
7461 }
7462
7463 unsafe impl
7464 fidl::encoding::Encode<
7465 NetworkManagerCreateNetworkResponse,
7466 fidl::encoding::DefaultFuchsiaResourceDialect,
7467 > for &mut NetworkManagerCreateNetworkResponse
7468 {
7469 #[inline]
7470 unsafe fn encode(
7471 self,
7472 encoder: &mut fidl::encoding::Encoder<
7473 '_,
7474 fidl::encoding::DefaultFuchsiaResourceDialect,
7475 >,
7476 offset: usize,
7477 _depth: fidl::encoding::Depth,
7478 ) -> fidl::Result<()> {
7479 encoder.debug_check_bounds::<NetworkManagerCreateNetworkResponse>(offset);
7480 fidl::encoding::Encode::<
7482 NetworkManagerCreateNetworkResponse,
7483 fidl::encoding::DefaultFuchsiaResourceDialect,
7484 >::encode(
7485 (
7486 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
7487 <fidl::encoding::Optional<
7488 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7489 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7490 &mut self.net
7491 ),
7492 ),
7493 encoder,
7494 offset,
7495 _depth,
7496 )
7497 }
7498 }
7499 unsafe impl<
7500 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
7501 T1: fidl::encoding::Encode<
7502 fidl::encoding::Optional<
7503 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7504 >,
7505 fidl::encoding::DefaultFuchsiaResourceDialect,
7506 >,
7507 >
7508 fidl::encoding::Encode<
7509 NetworkManagerCreateNetworkResponse,
7510 fidl::encoding::DefaultFuchsiaResourceDialect,
7511 > for (T0, T1)
7512 {
7513 #[inline]
7514 unsafe fn encode(
7515 self,
7516 encoder: &mut fidl::encoding::Encoder<
7517 '_,
7518 fidl::encoding::DefaultFuchsiaResourceDialect,
7519 >,
7520 offset: usize,
7521 depth: fidl::encoding::Depth,
7522 ) -> fidl::Result<()> {
7523 encoder.debug_check_bounds::<NetworkManagerCreateNetworkResponse>(offset);
7524 self.0.encode(encoder, offset + 0, depth)?;
7528 self.1.encode(encoder, offset + 4, depth)?;
7529 Ok(())
7530 }
7531 }
7532
7533 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7534 for NetworkManagerCreateNetworkResponse
7535 {
7536 #[inline(always)]
7537 fn new_empty() -> Self {
7538 Self {
7539 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
7540 net: fidl::new_empty!(
7541 fidl::encoding::Optional<
7542 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7543 >,
7544 fidl::encoding::DefaultFuchsiaResourceDialect
7545 ),
7546 }
7547 }
7548
7549 #[inline]
7550 unsafe fn decode(
7551 &mut self,
7552 decoder: &mut fidl::encoding::Decoder<
7553 '_,
7554 fidl::encoding::DefaultFuchsiaResourceDialect,
7555 >,
7556 offset: usize,
7557 _depth: fidl::encoding::Depth,
7558 ) -> fidl::Result<()> {
7559 decoder.debug_check_bounds::<Self>(offset);
7560 fidl::decode!(
7562 i32,
7563 fidl::encoding::DefaultFuchsiaResourceDialect,
7564 &mut self.status,
7565 decoder,
7566 offset + 0,
7567 _depth
7568 )?;
7569 fidl::decode!(
7570 fidl::encoding::Optional<
7571 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7572 >,
7573 fidl::encoding::DefaultFuchsiaResourceDialect,
7574 &mut self.net,
7575 decoder,
7576 offset + 4,
7577 _depth
7578 )?;
7579 Ok(())
7580 }
7581 }
7582
7583 impl fidl::encoding::ResourceTypeMarker for NetworkManagerGetNetworkResponse {
7584 type Borrowed<'a> = &'a mut Self;
7585 fn take_or_borrow<'a>(
7586 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7587 ) -> Self::Borrowed<'a> {
7588 value
7589 }
7590 }
7591
7592 unsafe impl fidl::encoding::TypeMarker for NetworkManagerGetNetworkResponse {
7593 type Owned = Self;
7594
7595 #[inline(always)]
7596 fn inline_align(_context: fidl::encoding::Context) -> usize {
7597 4
7598 }
7599
7600 #[inline(always)]
7601 fn inline_size(_context: fidl::encoding::Context) -> usize {
7602 4
7603 }
7604 }
7605
7606 unsafe impl
7607 fidl::encoding::Encode<
7608 NetworkManagerGetNetworkResponse,
7609 fidl::encoding::DefaultFuchsiaResourceDialect,
7610 > for &mut NetworkManagerGetNetworkResponse
7611 {
7612 #[inline]
7613 unsafe fn encode(
7614 self,
7615 encoder: &mut fidl::encoding::Encoder<
7616 '_,
7617 fidl::encoding::DefaultFuchsiaResourceDialect,
7618 >,
7619 offset: usize,
7620 _depth: fidl::encoding::Depth,
7621 ) -> fidl::Result<()> {
7622 encoder.debug_check_bounds::<NetworkManagerGetNetworkResponse>(offset);
7623 fidl::encoding::Encode::<
7625 NetworkManagerGetNetworkResponse,
7626 fidl::encoding::DefaultFuchsiaResourceDialect,
7627 >::encode(
7628 (<fidl::encoding::Optional<
7629 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7630 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7631 &mut self.net
7632 ),),
7633 encoder,
7634 offset,
7635 _depth,
7636 )
7637 }
7638 }
7639 unsafe impl<
7640 T0: fidl::encoding::Encode<
7641 fidl::encoding::Optional<
7642 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7643 >,
7644 fidl::encoding::DefaultFuchsiaResourceDialect,
7645 >,
7646 >
7647 fidl::encoding::Encode<
7648 NetworkManagerGetNetworkResponse,
7649 fidl::encoding::DefaultFuchsiaResourceDialect,
7650 > for (T0,)
7651 {
7652 #[inline]
7653 unsafe fn encode(
7654 self,
7655 encoder: &mut fidl::encoding::Encoder<
7656 '_,
7657 fidl::encoding::DefaultFuchsiaResourceDialect,
7658 >,
7659 offset: usize,
7660 depth: fidl::encoding::Depth,
7661 ) -> fidl::Result<()> {
7662 encoder.debug_check_bounds::<NetworkManagerGetNetworkResponse>(offset);
7663 self.0.encode(encoder, offset + 0, depth)?;
7667 Ok(())
7668 }
7669 }
7670
7671 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7672 for NetworkManagerGetNetworkResponse
7673 {
7674 #[inline(always)]
7675 fn new_empty() -> Self {
7676 Self {
7677 net: fidl::new_empty!(
7678 fidl::encoding::Optional<
7679 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7680 >,
7681 fidl::encoding::DefaultFuchsiaResourceDialect
7682 ),
7683 }
7684 }
7685
7686 #[inline]
7687 unsafe fn decode(
7688 &mut self,
7689 decoder: &mut fidl::encoding::Decoder<
7690 '_,
7691 fidl::encoding::DefaultFuchsiaResourceDialect,
7692 >,
7693 offset: usize,
7694 _depth: fidl::encoding::Depth,
7695 ) -> fidl::Result<()> {
7696 decoder.debug_check_bounds::<Self>(offset);
7697 fidl::decode!(
7699 fidl::encoding::Optional<
7700 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7701 >,
7702 fidl::encoding::DefaultFuchsiaResourceDialect,
7703 &mut self.net,
7704 decoder,
7705 offset + 0,
7706 _depth
7707 )?;
7708 Ok(())
7709 }
7710 }
7711}