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