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 fn r#add_port(
2853 &self,
2854 port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
2855 interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
2856 ) -> Result<(), fidl::Error>;
2857 type GetConfigResponseFut: std::future::Future<Output = Result<NetworkConfig, fidl::Error>>
2858 + Send;
2859 fn r#get_config(&self) -> Self::GetConfigResponseFut;
2860 type GetNameResponseFut: std::future::Future<Output = Result<String, fidl::Error>> + Send;
2861 fn r#get_name(&self) -> Self::GetNameResponseFut;
2862 type SetConfigResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2863 fn r#set_config(&self, config: &NetworkConfig) -> Self::SetConfigResponseFut;
2864 type AttachEndpointResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2865 fn r#attach_endpoint(&self, name: &str) -> Self::AttachEndpointResponseFut;
2866 type RemoveEndpointResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2867 fn r#remove_endpoint(&self, name: &str) -> Self::RemoveEndpointResponseFut;
2868 fn r#create_fake_endpoint(
2869 &self,
2870 ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
2871 ) -> Result<(), fidl::Error>;
2872 type StartCaptureResponseFut: std::future::Future<Output = Result<i32, fidl::Error>> + Send;
2873 fn r#start_capture(&self, name: &str) -> Self::StartCaptureResponseFut;
2874 type StopCaptureResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
2875 fn r#stop_capture(&self) -> Self::StopCaptureResponseFut;
2876}
2877#[derive(Debug)]
2878#[cfg(target_os = "fuchsia")]
2879pub struct NetworkSynchronousProxy {
2880 client: fidl::client::sync::Client,
2881}
2882
2883#[cfg(target_os = "fuchsia")]
2884impl fidl::endpoints::SynchronousProxy for NetworkSynchronousProxy {
2885 type Proxy = NetworkProxy;
2886 type Protocol = NetworkMarker;
2887
2888 fn from_channel(inner: fidl::Channel) -> Self {
2889 Self::new(inner)
2890 }
2891
2892 fn into_channel(self) -> fidl::Channel {
2893 self.client.into_channel()
2894 }
2895
2896 fn as_channel(&self) -> &fidl::Channel {
2897 self.client.as_channel()
2898 }
2899}
2900
2901#[cfg(target_os = "fuchsia")]
2902impl NetworkSynchronousProxy {
2903 pub fn new(channel: fidl::Channel) -> Self {
2904 Self { client: fidl::client::sync::Client::new(channel) }
2905 }
2906
2907 pub fn into_channel(self) -> fidl::Channel {
2908 self.client.into_channel()
2909 }
2910
2911 pub fn wait_for_event(
2914 &self,
2915 deadline: zx::MonotonicInstant,
2916 ) -> Result<NetworkEvent, fidl::Error> {
2917 NetworkEvent::decode(self.client.wait_for_event::<NetworkMarker>(deadline)?)
2918 }
2919
2920 pub fn r#add_port(
2925 &self,
2926 mut port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
2927 mut interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
2928 ) -> Result<(), fidl::Error> {
2929 self.client.send::<fidl_fuchsia_net_virtualization::NetworkAddPortRequest>(
2930 (port, interface),
2931 0x7ad6a60c931a3f4e,
2932 fidl::encoding::DynamicFlags::empty(),
2933 )
2934 }
2935
2936 pub fn r#get_config(
2938 &self,
2939 ___deadline: zx::MonotonicInstant,
2940 ) -> Result<NetworkConfig, fidl::Error> {
2941 let _response = self
2942 .client
2943 .send_query::<fidl::encoding::EmptyPayload, NetworkGetConfigResponse, NetworkMarker>(
2944 (),
2945 0x8dc04557e2ab069,
2946 fidl::encoding::DynamicFlags::empty(),
2947 ___deadline,
2948 )?;
2949 Ok(_response.config)
2950 }
2951
2952 pub fn r#get_name(&self, ___deadline: zx::MonotonicInstant) -> Result<String, fidl::Error> {
2954 let _response = self
2955 .client
2956 .send_query::<fidl::encoding::EmptyPayload, NetworkGetNameResponse, NetworkMarker>(
2957 (),
2958 0x57b7701d1ffeedb1,
2959 fidl::encoding::DynamicFlags::empty(),
2960 ___deadline,
2961 )?;
2962 Ok(_response.name)
2963 }
2964
2965 pub fn r#set_config(
2967 &self,
2968 mut config: &NetworkConfig,
2969 ___deadline: zx::MonotonicInstant,
2970 ) -> Result<i32, fidl::Error> {
2971 let _response = self
2972 .client
2973 .send_query::<NetworkSetConfigRequest, NetworkSetConfigResponse, NetworkMarker>(
2974 (config,),
2975 0x18a490ee9d4bfa16,
2976 fidl::encoding::DynamicFlags::empty(),
2977 ___deadline,
2978 )?;
2979 Ok(_response.status)
2980 }
2981
2982 pub fn r#attach_endpoint(
2984 &self,
2985 mut name: &str,
2986 ___deadline: zx::MonotonicInstant,
2987 ) -> Result<i32, fidl::Error> {
2988 let _response = self.client.send_query::<
2989 NetworkAttachEndpointRequest,
2990 NetworkAttachEndpointResponse,
2991 NetworkMarker,
2992 >(
2993 (name,),
2994 0x6e8ff8e9ea1b9a98,
2995 fidl::encoding::DynamicFlags::empty(),
2996 ___deadline,
2997 )?;
2998 Ok(_response.status)
2999 }
3000
3001 pub fn r#remove_endpoint(
3003 &self,
3004 mut name: &str,
3005 ___deadline: zx::MonotonicInstant,
3006 ) -> Result<i32, fidl::Error> {
3007 let _response = self.client.send_query::<
3008 NetworkRemoveEndpointRequest,
3009 NetworkRemoveEndpointResponse,
3010 NetworkMarker,
3011 >(
3012 (name,),
3013 0x298eaac56bfcdd25,
3014 fidl::encoding::DynamicFlags::empty(),
3015 ___deadline,
3016 )?;
3017 Ok(_response.status)
3018 }
3019
3020 pub fn r#create_fake_endpoint(
3022 &self,
3023 mut ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
3024 ) -> Result<(), fidl::Error> {
3025 self.client.send::<NetworkCreateFakeEndpointRequest>(
3026 (ep,),
3027 0x3eb8f71b45e1e1f3,
3028 fidl::encoding::DynamicFlags::empty(),
3029 )
3030 }
3031
3032 pub fn r#start_capture(
3039 &self,
3040 mut name: &str,
3041 ___deadline: zx::MonotonicInstant,
3042 ) -> Result<i32, fidl::Error> {
3043 let _response = self
3044 .client
3045 .send_query::<NetworkStartCaptureRequest, NetworkStartCaptureResponse, NetworkMarker>(
3046 (name,),
3047 0x3ca44940622932c,
3048 fidl::encoding::DynamicFlags::empty(),
3049 ___deadline,
3050 )?;
3051 Ok(_response.status)
3052 }
3053
3054 pub fn r#stop_capture(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3060 let _response = self.client.send_query::<
3061 fidl::encoding::EmptyPayload,
3062 fidl::encoding::EmptyPayload,
3063 NetworkMarker,
3064 >(
3065 (),
3066 0x1d7827adad109468,
3067 fidl::encoding::DynamicFlags::empty(),
3068 ___deadline,
3069 )?;
3070 Ok(_response)
3071 }
3072}
3073
3074#[cfg(target_os = "fuchsia")]
3075impl From<NetworkSynchronousProxy> for zx::NullableHandle {
3076 fn from(value: NetworkSynchronousProxy) -> Self {
3077 value.into_channel().into()
3078 }
3079}
3080
3081#[cfg(target_os = "fuchsia")]
3082impl From<fidl::Channel> for NetworkSynchronousProxy {
3083 fn from(value: fidl::Channel) -> Self {
3084 Self::new(value)
3085 }
3086}
3087
3088#[cfg(target_os = "fuchsia")]
3089impl fidl::endpoints::FromClient for NetworkSynchronousProxy {
3090 type Protocol = NetworkMarker;
3091
3092 fn from_client(value: fidl::endpoints::ClientEnd<NetworkMarker>) -> Self {
3093 Self::new(value.into_channel())
3094 }
3095}
3096
3097#[derive(Debug, Clone)]
3098pub struct NetworkProxy {
3099 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3100}
3101
3102impl fidl::endpoints::Proxy for NetworkProxy {
3103 type Protocol = NetworkMarker;
3104
3105 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3106 Self::new(inner)
3107 }
3108
3109 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3110 self.client.into_channel().map_err(|client| Self { client })
3111 }
3112
3113 fn as_channel(&self) -> &::fidl::AsyncChannel {
3114 self.client.as_channel()
3115 }
3116}
3117
3118impl NetworkProxy {
3119 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3121 let protocol_name = <NetworkMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3122 Self { client: fidl::client::Client::new(channel, protocol_name) }
3123 }
3124
3125 pub fn take_event_stream(&self) -> NetworkEventStream {
3131 NetworkEventStream { event_receiver: self.client.take_event_receiver() }
3132 }
3133
3134 pub fn r#add_port(
3139 &self,
3140 mut port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3141 mut interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3142 ) -> Result<(), fidl::Error> {
3143 NetworkProxyInterface::r#add_port(self, port, interface)
3144 }
3145
3146 pub fn r#get_config(
3148 &self,
3149 ) -> fidl::client::QueryResponseFut<NetworkConfig, fidl::encoding::DefaultFuchsiaResourceDialect>
3150 {
3151 NetworkProxyInterface::r#get_config(self)
3152 }
3153
3154 pub fn r#get_name(
3156 &self,
3157 ) -> fidl::client::QueryResponseFut<String, fidl::encoding::DefaultFuchsiaResourceDialect> {
3158 NetworkProxyInterface::r#get_name(self)
3159 }
3160
3161 pub fn r#set_config(
3163 &self,
3164 mut config: &NetworkConfig,
3165 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3166 NetworkProxyInterface::r#set_config(self, config)
3167 }
3168
3169 pub fn r#attach_endpoint(
3171 &self,
3172 mut name: &str,
3173 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3174 NetworkProxyInterface::r#attach_endpoint(self, name)
3175 }
3176
3177 pub fn r#remove_endpoint(
3179 &self,
3180 mut name: &str,
3181 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3182 NetworkProxyInterface::r#remove_endpoint(self, name)
3183 }
3184
3185 pub fn r#create_fake_endpoint(
3187 &self,
3188 mut ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
3189 ) -> Result<(), fidl::Error> {
3190 NetworkProxyInterface::r#create_fake_endpoint(self, ep)
3191 }
3192
3193 pub fn r#start_capture(
3200 &self,
3201 mut name: &str,
3202 ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3203 NetworkProxyInterface::r#start_capture(self, name)
3204 }
3205
3206 pub fn r#stop_capture(
3212 &self,
3213 ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3214 NetworkProxyInterface::r#stop_capture(self)
3215 }
3216}
3217
3218impl NetworkProxyInterface for NetworkProxy {
3219 fn r#add_port(
3220 &self,
3221 mut port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3222 mut interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3223 ) -> Result<(), fidl::Error> {
3224 self.client.send::<fidl_fuchsia_net_virtualization::NetworkAddPortRequest>(
3225 (port, interface),
3226 0x7ad6a60c931a3f4e,
3227 fidl::encoding::DynamicFlags::empty(),
3228 )
3229 }
3230
3231 type GetConfigResponseFut = fidl::client::QueryResponseFut<
3232 NetworkConfig,
3233 fidl::encoding::DefaultFuchsiaResourceDialect,
3234 >;
3235 fn r#get_config(&self) -> Self::GetConfigResponseFut {
3236 fn _decode(
3237 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3238 ) -> Result<NetworkConfig, fidl::Error> {
3239 let _response = fidl::client::decode_transaction_body::<
3240 NetworkGetConfigResponse,
3241 fidl::encoding::DefaultFuchsiaResourceDialect,
3242 0x8dc04557e2ab069,
3243 >(_buf?)?;
3244 Ok(_response.config)
3245 }
3246 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, NetworkConfig>(
3247 (),
3248 0x8dc04557e2ab069,
3249 fidl::encoding::DynamicFlags::empty(),
3250 _decode,
3251 )
3252 }
3253
3254 type GetNameResponseFut =
3255 fidl::client::QueryResponseFut<String, fidl::encoding::DefaultFuchsiaResourceDialect>;
3256 fn r#get_name(&self) -> Self::GetNameResponseFut {
3257 fn _decode(
3258 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3259 ) -> Result<String, fidl::Error> {
3260 let _response = fidl::client::decode_transaction_body::<
3261 NetworkGetNameResponse,
3262 fidl::encoding::DefaultFuchsiaResourceDialect,
3263 0x57b7701d1ffeedb1,
3264 >(_buf?)?;
3265 Ok(_response.name)
3266 }
3267 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, String>(
3268 (),
3269 0x57b7701d1ffeedb1,
3270 fidl::encoding::DynamicFlags::empty(),
3271 _decode,
3272 )
3273 }
3274
3275 type SetConfigResponseFut =
3276 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3277 fn r#set_config(&self, mut config: &NetworkConfig) -> Self::SetConfigResponseFut {
3278 fn _decode(
3279 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3280 ) -> Result<i32, fidl::Error> {
3281 let _response = fidl::client::decode_transaction_body::<
3282 NetworkSetConfigResponse,
3283 fidl::encoding::DefaultFuchsiaResourceDialect,
3284 0x18a490ee9d4bfa16,
3285 >(_buf?)?;
3286 Ok(_response.status)
3287 }
3288 self.client.send_query_and_decode::<NetworkSetConfigRequest, i32>(
3289 (config,),
3290 0x18a490ee9d4bfa16,
3291 fidl::encoding::DynamicFlags::empty(),
3292 _decode,
3293 )
3294 }
3295
3296 type AttachEndpointResponseFut =
3297 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3298 fn r#attach_endpoint(&self, mut name: &str) -> Self::AttachEndpointResponseFut {
3299 fn _decode(
3300 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3301 ) -> Result<i32, fidl::Error> {
3302 let _response = fidl::client::decode_transaction_body::<
3303 NetworkAttachEndpointResponse,
3304 fidl::encoding::DefaultFuchsiaResourceDialect,
3305 0x6e8ff8e9ea1b9a98,
3306 >(_buf?)?;
3307 Ok(_response.status)
3308 }
3309 self.client.send_query_and_decode::<NetworkAttachEndpointRequest, i32>(
3310 (name,),
3311 0x6e8ff8e9ea1b9a98,
3312 fidl::encoding::DynamicFlags::empty(),
3313 _decode,
3314 )
3315 }
3316
3317 type RemoveEndpointResponseFut =
3318 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3319 fn r#remove_endpoint(&self, mut name: &str) -> Self::RemoveEndpointResponseFut {
3320 fn _decode(
3321 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3322 ) -> Result<i32, fidl::Error> {
3323 let _response = fidl::client::decode_transaction_body::<
3324 NetworkRemoveEndpointResponse,
3325 fidl::encoding::DefaultFuchsiaResourceDialect,
3326 0x298eaac56bfcdd25,
3327 >(_buf?)?;
3328 Ok(_response.status)
3329 }
3330 self.client.send_query_and_decode::<NetworkRemoveEndpointRequest, i32>(
3331 (name,),
3332 0x298eaac56bfcdd25,
3333 fidl::encoding::DynamicFlags::empty(),
3334 _decode,
3335 )
3336 }
3337
3338 fn r#create_fake_endpoint(
3339 &self,
3340 mut ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
3341 ) -> Result<(), fidl::Error> {
3342 self.client.send::<NetworkCreateFakeEndpointRequest>(
3343 (ep,),
3344 0x3eb8f71b45e1e1f3,
3345 fidl::encoding::DynamicFlags::empty(),
3346 )
3347 }
3348
3349 type StartCaptureResponseFut =
3350 fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3351 fn r#start_capture(&self, mut name: &str) -> Self::StartCaptureResponseFut {
3352 fn _decode(
3353 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3354 ) -> Result<i32, fidl::Error> {
3355 let _response = fidl::client::decode_transaction_body::<
3356 NetworkStartCaptureResponse,
3357 fidl::encoding::DefaultFuchsiaResourceDialect,
3358 0x3ca44940622932c,
3359 >(_buf?)?;
3360 Ok(_response.status)
3361 }
3362 self.client.send_query_and_decode::<NetworkStartCaptureRequest, i32>(
3363 (name,),
3364 0x3ca44940622932c,
3365 fidl::encoding::DynamicFlags::empty(),
3366 _decode,
3367 )
3368 }
3369
3370 type StopCaptureResponseFut =
3371 fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3372 fn r#stop_capture(&self) -> Self::StopCaptureResponseFut {
3373 fn _decode(
3374 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3375 ) -> Result<(), fidl::Error> {
3376 let _response = fidl::client::decode_transaction_body::<
3377 fidl::encoding::EmptyPayload,
3378 fidl::encoding::DefaultFuchsiaResourceDialect,
3379 0x1d7827adad109468,
3380 >(_buf?)?;
3381 Ok(_response)
3382 }
3383 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3384 (),
3385 0x1d7827adad109468,
3386 fidl::encoding::DynamicFlags::empty(),
3387 _decode,
3388 )
3389 }
3390}
3391
3392pub struct NetworkEventStream {
3393 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3394}
3395
3396impl std::marker::Unpin for NetworkEventStream {}
3397
3398impl futures::stream::FusedStream for NetworkEventStream {
3399 fn is_terminated(&self) -> bool {
3400 self.event_receiver.is_terminated()
3401 }
3402}
3403
3404impl futures::Stream for NetworkEventStream {
3405 type Item = Result<NetworkEvent, fidl::Error>;
3406
3407 fn poll_next(
3408 mut self: std::pin::Pin<&mut Self>,
3409 cx: &mut std::task::Context<'_>,
3410 ) -> std::task::Poll<Option<Self::Item>> {
3411 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3412 &mut self.event_receiver,
3413 cx
3414 )?) {
3415 Some(buf) => std::task::Poll::Ready(Some(NetworkEvent::decode(buf))),
3416 None => std::task::Poll::Ready(None),
3417 }
3418 }
3419}
3420
3421#[derive(Debug)]
3422pub enum NetworkEvent {
3423 OnRemoved { reason: fidl_fuchsia_net_virtualization::NetworkRemovalReason },
3424}
3425
3426impl NetworkEvent {
3427 #[allow(irrefutable_let_patterns)]
3428 pub fn into_on_removed(self) -> Option<fidl_fuchsia_net_virtualization::NetworkRemovalReason> {
3429 if let NetworkEvent::OnRemoved { reason } = self { Some((reason)) } else { None }
3430 }
3431
3432 fn decode(
3434 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3435 ) -> Result<NetworkEvent, fidl::Error> {
3436 let (bytes, _handles) = buf.split_mut();
3437 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3438 debug_assert_eq!(tx_header.tx_id, 0);
3439 match tx_header.ordinal {
3440 0xfe80656d1e5ec4a => {
3441 let mut out = fidl::new_empty!(
3442 fidl_fuchsia_net_virtualization::NetworkOnRemovedRequest,
3443 fidl::encoding::DefaultFuchsiaResourceDialect
3444 );
3445 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_net_virtualization::NetworkOnRemovedRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
3446 Ok((NetworkEvent::OnRemoved { reason: out.reason }))
3447 }
3448 _ => Err(fidl::Error::UnknownOrdinal {
3449 ordinal: tx_header.ordinal,
3450 protocol_name: <NetworkMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3451 }),
3452 }
3453 }
3454}
3455
3456pub struct NetworkRequestStream {
3458 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3459 is_terminated: bool,
3460}
3461
3462impl std::marker::Unpin for NetworkRequestStream {}
3463
3464impl futures::stream::FusedStream for NetworkRequestStream {
3465 fn is_terminated(&self) -> bool {
3466 self.is_terminated
3467 }
3468}
3469
3470impl fidl::endpoints::RequestStream for NetworkRequestStream {
3471 type Protocol = NetworkMarker;
3472 type ControlHandle = NetworkControlHandle;
3473
3474 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3475 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3476 }
3477
3478 fn control_handle(&self) -> Self::ControlHandle {
3479 NetworkControlHandle { inner: self.inner.clone() }
3480 }
3481
3482 fn into_inner(
3483 self,
3484 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3485 {
3486 (self.inner, self.is_terminated)
3487 }
3488
3489 fn from_inner(
3490 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3491 is_terminated: bool,
3492 ) -> Self {
3493 Self { inner, is_terminated }
3494 }
3495}
3496
3497impl futures::Stream for NetworkRequestStream {
3498 type Item = Result<NetworkRequest, fidl::Error>;
3499
3500 fn poll_next(
3501 mut self: std::pin::Pin<&mut Self>,
3502 cx: &mut std::task::Context<'_>,
3503 ) -> std::task::Poll<Option<Self::Item>> {
3504 let this = &mut *self;
3505 if this.inner.check_shutdown(cx) {
3506 this.is_terminated = true;
3507 return std::task::Poll::Ready(None);
3508 }
3509 if this.is_terminated {
3510 panic!("polled NetworkRequestStream after completion");
3511 }
3512 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3513 |bytes, handles| {
3514 match this.inner.channel().read_etc(cx, bytes, handles) {
3515 std::task::Poll::Ready(Ok(())) => {}
3516 std::task::Poll::Pending => return std::task::Poll::Pending,
3517 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3518 this.is_terminated = true;
3519 return std::task::Poll::Ready(None);
3520 }
3521 std::task::Poll::Ready(Err(e)) => {
3522 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3523 e.into(),
3524 ))));
3525 }
3526 }
3527
3528 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3530
3531 std::task::Poll::Ready(Some(match header.ordinal {
3532 0x7ad6a60c931a3f4e => {
3533 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3534 let mut req = fidl::new_empty!(
3535 fidl_fuchsia_net_virtualization::NetworkAddPortRequest,
3536 fidl::encoding::DefaultFuchsiaResourceDialect
3537 );
3538 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl_fuchsia_net_virtualization::NetworkAddPortRequest>(&header, _body_bytes, handles, &mut req)?;
3539 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3540 Ok(NetworkRequest::AddPort {
3541 port: req.port,
3542 interface: req.interface,
3543
3544 control_handle,
3545 })
3546 }
3547 0x8dc04557e2ab069 => {
3548 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3549 let mut req = fidl::new_empty!(
3550 fidl::encoding::EmptyPayload,
3551 fidl::encoding::DefaultFuchsiaResourceDialect
3552 );
3553 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3554 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3555 Ok(NetworkRequest::GetConfig {
3556 responder: NetworkGetConfigResponder {
3557 control_handle: std::mem::ManuallyDrop::new(control_handle),
3558 tx_id: header.tx_id,
3559 },
3560 })
3561 }
3562 0x57b7701d1ffeedb1 => {
3563 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3564 let mut req = fidl::new_empty!(
3565 fidl::encoding::EmptyPayload,
3566 fidl::encoding::DefaultFuchsiaResourceDialect
3567 );
3568 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3569 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3570 Ok(NetworkRequest::GetName {
3571 responder: NetworkGetNameResponder {
3572 control_handle: std::mem::ManuallyDrop::new(control_handle),
3573 tx_id: header.tx_id,
3574 },
3575 })
3576 }
3577 0x18a490ee9d4bfa16 => {
3578 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3579 let mut req = fidl::new_empty!(
3580 NetworkSetConfigRequest,
3581 fidl::encoding::DefaultFuchsiaResourceDialect
3582 );
3583 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkSetConfigRequest>(&header, _body_bytes, handles, &mut req)?;
3584 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3585 Ok(NetworkRequest::SetConfig {
3586 config: req.config,
3587
3588 responder: NetworkSetConfigResponder {
3589 control_handle: std::mem::ManuallyDrop::new(control_handle),
3590 tx_id: header.tx_id,
3591 },
3592 })
3593 }
3594 0x6e8ff8e9ea1b9a98 => {
3595 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3596 let mut req = fidl::new_empty!(
3597 NetworkAttachEndpointRequest,
3598 fidl::encoding::DefaultFuchsiaResourceDialect
3599 );
3600 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkAttachEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
3601 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3602 Ok(NetworkRequest::AttachEndpoint {
3603 name: req.name,
3604
3605 responder: NetworkAttachEndpointResponder {
3606 control_handle: std::mem::ManuallyDrop::new(control_handle),
3607 tx_id: header.tx_id,
3608 },
3609 })
3610 }
3611 0x298eaac56bfcdd25 => {
3612 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3613 let mut req = fidl::new_empty!(
3614 NetworkRemoveEndpointRequest,
3615 fidl::encoding::DefaultFuchsiaResourceDialect
3616 );
3617 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkRemoveEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
3618 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3619 Ok(NetworkRequest::RemoveEndpoint {
3620 name: req.name,
3621
3622 responder: NetworkRemoveEndpointResponder {
3623 control_handle: std::mem::ManuallyDrop::new(control_handle),
3624 tx_id: header.tx_id,
3625 },
3626 })
3627 }
3628 0x3eb8f71b45e1e1f3 => {
3629 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3630 let mut req = fidl::new_empty!(
3631 NetworkCreateFakeEndpointRequest,
3632 fidl::encoding::DefaultFuchsiaResourceDialect
3633 );
3634 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkCreateFakeEndpointRequest>(&header, _body_bytes, handles, &mut req)?;
3635 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3636 Ok(NetworkRequest::CreateFakeEndpoint { ep: req.ep, control_handle })
3637 }
3638 0x3ca44940622932c => {
3639 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3640 let mut req = fidl::new_empty!(
3641 NetworkStartCaptureRequest,
3642 fidl::encoding::DefaultFuchsiaResourceDialect
3643 );
3644 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkStartCaptureRequest>(&header, _body_bytes, handles, &mut req)?;
3645 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3646 Ok(NetworkRequest::StartCapture {
3647 name: req.name,
3648
3649 responder: NetworkStartCaptureResponder {
3650 control_handle: std::mem::ManuallyDrop::new(control_handle),
3651 tx_id: header.tx_id,
3652 },
3653 })
3654 }
3655 0x1d7827adad109468 => {
3656 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3657 let mut req = fidl::new_empty!(
3658 fidl::encoding::EmptyPayload,
3659 fidl::encoding::DefaultFuchsiaResourceDialect
3660 );
3661 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3662 let control_handle = NetworkControlHandle { inner: this.inner.clone() };
3663 Ok(NetworkRequest::StopCapture {
3664 responder: NetworkStopCaptureResponder {
3665 control_handle: std::mem::ManuallyDrop::new(control_handle),
3666 tx_id: header.tx_id,
3667 },
3668 })
3669 }
3670 _ => Err(fidl::Error::UnknownOrdinal {
3671 ordinal: header.ordinal,
3672 protocol_name:
3673 <NetworkMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3674 }),
3675 }))
3676 },
3677 )
3678 }
3679}
3680
3681#[derive(Debug)]
3683pub enum NetworkRequest {
3684 AddPort {
3689 port: fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3690 interface: fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3691 control_handle: NetworkControlHandle,
3692 },
3693 GetConfig { responder: NetworkGetConfigResponder },
3695 GetName { responder: NetworkGetNameResponder },
3697 SetConfig { config: NetworkConfig, responder: NetworkSetConfigResponder },
3699 AttachEndpoint { name: String, responder: NetworkAttachEndpointResponder },
3701 RemoveEndpoint { name: String, responder: NetworkRemoveEndpointResponder },
3703 CreateFakeEndpoint {
3705 ep: fidl::endpoints::ServerEnd<FakeEndpointMarker>,
3706 control_handle: NetworkControlHandle,
3707 },
3708 StartCapture { name: String, responder: NetworkStartCaptureResponder },
3715 StopCapture { responder: NetworkStopCaptureResponder },
3721}
3722
3723impl NetworkRequest {
3724 #[allow(irrefutable_let_patterns)]
3725 pub fn into_add_port(
3726 self,
3727 ) -> Option<(
3728 fidl::endpoints::ClientEnd<fidl_fuchsia_hardware_network::PortMarker>,
3729 fidl::endpoints::ServerEnd<fidl_fuchsia_net_virtualization::InterfaceMarker>,
3730 NetworkControlHandle,
3731 )> {
3732 if let NetworkRequest::AddPort { port, interface, control_handle } = self {
3733 Some((port, interface, control_handle))
3734 } else {
3735 None
3736 }
3737 }
3738
3739 #[allow(irrefutable_let_patterns)]
3740 pub fn into_get_config(self) -> Option<(NetworkGetConfigResponder)> {
3741 if let NetworkRequest::GetConfig { responder } = self { Some((responder)) } else { None }
3742 }
3743
3744 #[allow(irrefutable_let_patterns)]
3745 pub fn into_get_name(self) -> Option<(NetworkGetNameResponder)> {
3746 if let NetworkRequest::GetName { responder } = self { Some((responder)) } else { None }
3747 }
3748
3749 #[allow(irrefutable_let_patterns)]
3750 pub fn into_set_config(self) -> Option<(NetworkConfig, NetworkSetConfigResponder)> {
3751 if let NetworkRequest::SetConfig { config, responder } = self {
3752 Some((config, responder))
3753 } else {
3754 None
3755 }
3756 }
3757
3758 #[allow(irrefutable_let_patterns)]
3759 pub fn into_attach_endpoint(self) -> Option<(String, NetworkAttachEndpointResponder)> {
3760 if let NetworkRequest::AttachEndpoint { name, responder } = self {
3761 Some((name, responder))
3762 } else {
3763 None
3764 }
3765 }
3766
3767 #[allow(irrefutable_let_patterns)]
3768 pub fn into_remove_endpoint(self) -> Option<(String, NetworkRemoveEndpointResponder)> {
3769 if let NetworkRequest::RemoveEndpoint { name, responder } = self {
3770 Some((name, responder))
3771 } else {
3772 None
3773 }
3774 }
3775
3776 #[allow(irrefutable_let_patterns)]
3777 pub fn into_create_fake_endpoint(
3778 self,
3779 ) -> Option<(fidl::endpoints::ServerEnd<FakeEndpointMarker>, NetworkControlHandle)> {
3780 if let NetworkRequest::CreateFakeEndpoint { ep, control_handle } = self {
3781 Some((ep, control_handle))
3782 } else {
3783 None
3784 }
3785 }
3786
3787 #[allow(irrefutable_let_patterns)]
3788 pub fn into_start_capture(self) -> Option<(String, NetworkStartCaptureResponder)> {
3789 if let NetworkRequest::StartCapture { name, responder } = self {
3790 Some((name, responder))
3791 } else {
3792 None
3793 }
3794 }
3795
3796 #[allow(irrefutable_let_patterns)]
3797 pub fn into_stop_capture(self) -> Option<(NetworkStopCaptureResponder)> {
3798 if let NetworkRequest::StopCapture { responder } = self { Some((responder)) } else { None }
3799 }
3800
3801 pub fn method_name(&self) -> &'static str {
3803 match *self {
3804 NetworkRequest::AddPort { .. } => "add_port",
3805 NetworkRequest::GetConfig { .. } => "get_config",
3806 NetworkRequest::GetName { .. } => "get_name",
3807 NetworkRequest::SetConfig { .. } => "set_config",
3808 NetworkRequest::AttachEndpoint { .. } => "attach_endpoint",
3809 NetworkRequest::RemoveEndpoint { .. } => "remove_endpoint",
3810 NetworkRequest::CreateFakeEndpoint { .. } => "create_fake_endpoint",
3811 NetworkRequest::StartCapture { .. } => "start_capture",
3812 NetworkRequest::StopCapture { .. } => "stop_capture",
3813 }
3814 }
3815}
3816
3817#[derive(Debug, Clone)]
3818pub struct NetworkControlHandle {
3819 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3820}
3821
3822impl NetworkControlHandle {
3823 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
3824 self.inner.shutdown_with_epitaph(status.into())
3825 }
3826}
3827
3828impl fidl::endpoints::ControlHandle for NetworkControlHandle {
3829 fn shutdown(&self) {
3830 self.inner.shutdown()
3831 }
3832
3833 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
3834 self.inner.shutdown_with_epitaph(status)
3835 }
3836
3837 fn is_closed(&self) -> bool {
3838 self.inner.channel().is_closed()
3839 }
3840 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3841 self.inner.channel().on_closed()
3842 }
3843
3844 #[cfg(target_os = "fuchsia")]
3845 fn signal_peer(
3846 &self,
3847 clear_mask: zx::Signals,
3848 set_mask: zx::Signals,
3849 ) -> Result<(), zx_status::Status> {
3850 use fidl::Peered;
3851 self.inner.channel().signal_peer(clear_mask, set_mask)
3852 }
3853}
3854
3855impl NetworkControlHandle {
3856 pub fn send_on_removed(
3857 &self,
3858 mut reason: fidl_fuchsia_net_virtualization::NetworkRemovalReason,
3859 ) -> Result<(), fidl::Error> {
3860 self.inner.send::<fidl_fuchsia_net_virtualization::NetworkOnRemovedRequest>(
3861 (reason,),
3862 0,
3863 0xfe80656d1e5ec4a,
3864 fidl::encoding::DynamicFlags::empty(),
3865 )
3866 }
3867}
3868
3869#[must_use = "FIDL methods require a response to be sent"]
3870#[derive(Debug)]
3871pub struct NetworkGetConfigResponder {
3872 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
3873 tx_id: u32,
3874}
3875
3876impl std::ops::Drop for NetworkGetConfigResponder {
3880 fn drop(&mut self) {
3881 self.control_handle.shutdown();
3882 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3884 }
3885}
3886
3887impl fidl::endpoints::Responder for NetworkGetConfigResponder {
3888 type ControlHandle = NetworkControlHandle;
3889
3890 fn control_handle(&self) -> &NetworkControlHandle {
3891 &self.control_handle
3892 }
3893
3894 fn drop_without_shutdown(mut self) {
3895 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3897 std::mem::forget(self);
3899 }
3900}
3901
3902impl NetworkGetConfigResponder {
3903 pub fn send(self, mut config: &NetworkConfig) -> Result<(), fidl::Error> {
3907 let _result = self.send_raw(config);
3908 if _result.is_err() {
3909 self.control_handle.shutdown();
3910 }
3911 self.drop_without_shutdown();
3912 _result
3913 }
3914
3915 pub fn send_no_shutdown_on_err(self, mut config: &NetworkConfig) -> Result<(), fidl::Error> {
3917 let _result = self.send_raw(config);
3918 self.drop_without_shutdown();
3919 _result
3920 }
3921
3922 fn send_raw(&self, mut config: &NetworkConfig) -> Result<(), fidl::Error> {
3923 self.control_handle.inner.send::<NetworkGetConfigResponse>(
3924 (config,),
3925 self.tx_id,
3926 0x8dc04557e2ab069,
3927 fidl::encoding::DynamicFlags::empty(),
3928 )
3929 }
3930}
3931
3932#[must_use = "FIDL methods require a response to be sent"]
3933#[derive(Debug)]
3934pub struct NetworkGetNameResponder {
3935 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
3936 tx_id: u32,
3937}
3938
3939impl std::ops::Drop for NetworkGetNameResponder {
3943 fn drop(&mut self) {
3944 self.control_handle.shutdown();
3945 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3947 }
3948}
3949
3950impl fidl::endpoints::Responder for NetworkGetNameResponder {
3951 type ControlHandle = NetworkControlHandle;
3952
3953 fn control_handle(&self) -> &NetworkControlHandle {
3954 &self.control_handle
3955 }
3956
3957 fn drop_without_shutdown(mut self) {
3958 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3960 std::mem::forget(self);
3962 }
3963}
3964
3965impl NetworkGetNameResponder {
3966 pub fn send(self, mut name: &str) -> Result<(), fidl::Error> {
3970 let _result = self.send_raw(name);
3971 if _result.is_err() {
3972 self.control_handle.shutdown();
3973 }
3974 self.drop_without_shutdown();
3975 _result
3976 }
3977
3978 pub fn send_no_shutdown_on_err(self, mut name: &str) -> Result<(), fidl::Error> {
3980 let _result = self.send_raw(name);
3981 self.drop_without_shutdown();
3982 _result
3983 }
3984
3985 fn send_raw(&self, mut name: &str) -> Result<(), fidl::Error> {
3986 self.control_handle.inner.send::<NetworkGetNameResponse>(
3987 (name,),
3988 self.tx_id,
3989 0x57b7701d1ffeedb1,
3990 fidl::encoding::DynamicFlags::empty(),
3991 )
3992 }
3993}
3994
3995#[must_use = "FIDL methods require a response to be sent"]
3996#[derive(Debug)]
3997pub struct NetworkSetConfigResponder {
3998 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
3999 tx_id: u32,
4000}
4001
4002impl std::ops::Drop for NetworkSetConfigResponder {
4006 fn drop(&mut self) {
4007 self.control_handle.shutdown();
4008 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4010 }
4011}
4012
4013impl fidl::endpoints::Responder for NetworkSetConfigResponder {
4014 type ControlHandle = NetworkControlHandle;
4015
4016 fn control_handle(&self) -> &NetworkControlHandle {
4017 &self.control_handle
4018 }
4019
4020 fn drop_without_shutdown(mut self) {
4021 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4023 std::mem::forget(self);
4025 }
4026}
4027
4028impl NetworkSetConfigResponder {
4029 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
4033 let _result = self.send_raw(status);
4034 if _result.is_err() {
4035 self.control_handle.shutdown();
4036 }
4037 self.drop_without_shutdown();
4038 _result
4039 }
4040
4041 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
4043 let _result = self.send_raw(status);
4044 self.drop_without_shutdown();
4045 _result
4046 }
4047
4048 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
4049 self.control_handle.inner.send::<NetworkSetConfigResponse>(
4050 (status,),
4051 self.tx_id,
4052 0x18a490ee9d4bfa16,
4053 fidl::encoding::DynamicFlags::empty(),
4054 )
4055 }
4056}
4057
4058#[must_use = "FIDL methods require a response to be sent"]
4059#[derive(Debug)]
4060pub struct NetworkAttachEndpointResponder {
4061 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4062 tx_id: u32,
4063}
4064
4065impl std::ops::Drop for NetworkAttachEndpointResponder {
4069 fn drop(&mut self) {
4070 self.control_handle.shutdown();
4071 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4073 }
4074}
4075
4076impl fidl::endpoints::Responder for NetworkAttachEndpointResponder {
4077 type ControlHandle = NetworkControlHandle;
4078
4079 fn control_handle(&self) -> &NetworkControlHandle {
4080 &self.control_handle
4081 }
4082
4083 fn drop_without_shutdown(mut self) {
4084 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4086 std::mem::forget(self);
4088 }
4089}
4090
4091impl NetworkAttachEndpointResponder {
4092 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
4096 let _result = self.send_raw(status);
4097 if _result.is_err() {
4098 self.control_handle.shutdown();
4099 }
4100 self.drop_without_shutdown();
4101 _result
4102 }
4103
4104 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
4106 let _result = self.send_raw(status);
4107 self.drop_without_shutdown();
4108 _result
4109 }
4110
4111 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
4112 self.control_handle.inner.send::<NetworkAttachEndpointResponse>(
4113 (status,),
4114 self.tx_id,
4115 0x6e8ff8e9ea1b9a98,
4116 fidl::encoding::DynamicFlags::empty(),
4117 )
4118 }
4119}
4120
4121#[must_use = "FIDL methods require a response to be sent"]
4122#[derive(Debug)]
4123pub struct NetworkRemoveEndpointResponder {
4124 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4125 tx_id: u32,
4126}
4127
4128impl std::ops::Drop for NetworkRemoveEndpointResponder {
4132 fn drop(&mut self) {
4133 self.control_handle.shutdown();
4134 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4136 }
4137}
4138
4139impl fidl::endpoints::Responder for NetworkRemoveEndpointResponder {
4140 type ControlHandle = NetworkControlHandle;
4141
4142 fn control_handle(&self) -> &NetworkControlHandle {
4143 &self.control_handle
4144 }
4145
4146 fn drop_without_shutdown(mut self) {
4147 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4149 std::mem::forget(self);
4151 }
4152}
4153
4154impl NetworkRemoveEndpointResponder {
4155 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
4159 let _result = self.send_raw(status);
4160 if _result.is_err() {
4161 self.control_handle.shutdown();
4162 }
4163 self.drop_without_shutdown();
4164 _result
4165 }
4166
4167 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
4169 let _result = self.send_raw(status);
4170 self.drop_without_shutdown();
4171 _result
4172 }
4173
4174 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
4175 self.control_handle.inner.send::<NetworkRemoveEndpointResponse>(
4176 (status,),
4177 self.tx_id,
4178 0x298eaac56bfcdd25,
4179 fidl::encoding::DynamicFlags::empty(),
4180 )
4181 }
4182}
4183
4184#[must_use = "FIDL methods require a response to be sent"]
4185#[derive(Debug)]
4186pub struct NetworkStartCaptureResponder {
4187 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4188 tx_id: u32,
4189}
4190
4191impl std::ops::Drop for NetworkStartCaptureResponder {
4195 fn drop(&mut self) {
4196 self.control_handle.shutdown();
4197 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4199 }
4200}
4201
4202impl fidl::endpoints::Responder for NetworkStartCaptureResponder {
4203 type ControlHandle = NetworkControlHandle;
4204
4205 fn control_handle(&self) -> &NetworkControlHandle {
4206 &self.control_handle
4207 }
4208
4209 fn drop_without_shutdown(mut self) {
4210 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4212 std::mem::forget(self);
4214 }
4215}
4216
4217impl NetworkStartCaptureResponder {
4218 pub fn send(self, mut status: i32) -> Result<(), fidl::Error> {
4222 let _result = self.send_raw(status);
4223 if _result.is_err() {
4224 self.control_handle.shutdown();
4225 }
4226 self.drop_without_shutdown();
4227 _result
4228 }
4229
4230 pub fn send_no_shutdown_on_err(self, mut status: i32) -> Result<(), fidl::Error> {
4232 let _result = self.send_raw(status);
4233 self.drop_without_shutdown();
4234 _result
4235 }
4236
4237 fn send_raw(&self, mut status: i32) -> Result<(), fidl::Error> {
4238 self.control_handle.inner.send::<NetworkStartCaptureResponse>(
4239 (status,),
4240 self.tx_id,
4241 0x3ca44940622932c,
4242 fidl::encoding::DynamicFlags::empty(),
4243 )
4244 }
4245}
4246
4247#[must_use = "FIDL methods require a response to be sent"]
4248#[derive(Debug)]
4249pub struct NetworkStopCaptureResponder {
4250 control_handle: std::mem::ManuallyDrop<NetworkControlHandle>,
4251 tx_id: u32,
4252}
4253
4254impl std::ops::Drop for NetworkStopCaptureResponder {
4258 fn drop(&mut self) {
4259 self.control_handle.shutdown();
4260 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4262 }
4263}
4264
4265impl fidl::endpoints::Responder for NetworkStopCaptureResponder {
4266 type ControlHandle = NetworkControlHandle;
4267
4268 fn control_handle(&self) -> &NetworkControlHandle {
4269 &self.control_handle
4270 }
4271
4272 fn drop_without_shutdown(mut self) {
4273 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4275 std::mem::forget(self);
4277 }
4278}
4279
4280impl NetworkStopCaptureResponder {
4281 pub fn send(self) -> Result<(), fidl::Error> {
4285 let _result = self.send_raw();
4286 if _result.is_err() {
4287 self.control_handle.shutdown();
4288 }
4289 self.drop_without_shutdown();
4290 _result
4291 }
4292
4293 pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4295 let _result = self.send_raw();
4296 self.drop_without_shutdown();
4297 _result
4298 }
4299
4300 fn send_raw(&self) -> Result<(), fidl::Error> {
4301 self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4302 (),
4303 self.tx_id,
4304 0x1d7827adad109468,
4305 fidl::encoding::DynamicFlags::empty(),
4306 )
4307 }
4308}
4309
4310#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4311pub struct NetworkContextMarker;
4312
4313impl fidl::endpoints::ProtocolMarker for NetworkContextMarker {
4314 type Proxy = NetworkContextProxy;
4315 type RequestStream = NetworkContextRequestStream;
4316 #[cfg(target_os = "fuchsia")]
4317 type SynchronousProxy = NetworkContextSynchronousProxy;
4318
4319 const DEBUG_NAME: &'static str = "fuchsia.netemul.network.NetworkContext";
4320}
4321impl fidl::endpoints::DiscoverableProtocolMarker for NetworkContextMarker {}
4322
4323pub trait NetworkContextProxyInterface: Send + Sync {
4324 fn r#clone(
4325 &self,
4326 network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4327 ) -> Result<(), fidl::Error>;
4328 fn r#get_network_manager(
4329 &self,
4330 net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4331 ) -> Result<(), fidl::Error>;
4332 fn r#get_endpoint_manager(
4333 &self,
4334 endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4335 ) -> Result<(), fidl::Error>;
4336 type SetupResponseFut: std::future::Future<
4337 Output = Result<
4338 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4339 fidl::Error,
4340 >,
4341 > + Send;
4342 fn r#setup(&self, networks: &[NetworkSetup]) -> Self::SetupResponseFut;
4343}
4344#[derive(Debug)]
4345#[cfg(target_os = "fuchsia")]
4346pub struct NetworkContextSynchronousProxy {
4347 client: fidl::client::sync::Client,
4348}
4349
4350#[cfg(target_os = "fuchsia")]
4351impl fidl::endpoints::SynchronousProxy for NetworkContextSynchronousProxy {
4352 type Proxy = NetworkContextProxy;
4353 type Protocol = NetworkContextMarker;
4354
4355 fn from_channel(inner: fidl::Channel) -> Self {
4356 Self::new(inner)
4357 }
4358
4359 fn into_channel(self) -> fidl::Channel {
4360 self.client.into_channel()
4361 }
4362
4363 fn as_channel(&self) -> &fidl::Channel {
4364 self.client.as_channel()
4365 }
4366}
4367
4368#[cfg(target_os = "fuchsia")]
4369impl NetworkContextSynchronousProxy {
4370 pub fn new(channel: fidl::Channel) -> Self {
4371 Self { client: fidl::client::sync::Client::new(channel) }
4372 }
4373
4374 pub fn into_channel(self) -> fidl::Channel {
4375 self.client.into_channel()
4376 }
4377
4378 pub fn wait_for_event(
4381 &self,
4382 deadline: zx::MonotonicInstant,
4383 ) -> Result<NetworkContextEvent, fidl::Error> {
4384 NetworkContextEvent::decode(self.client.wait_for_event::<NetworkContextMarker>(deadline)?)
4385 }
4386
4387 pub fn r#clone(
4388 &self,
4389 mut network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4390 ) -> Result<(), fidl::Error> {
4391 self.client.send::<NetworkContextCloneRequest>(
4392 (network_context,),
4393 0x1f7eb1b78a2ad2b0,
4394 fidl::encoding::DynamicFlags::empty(),
4395 )
4396 }
4397
4398 pub fn r#get_network_manager(
4399 &self,
4400 mut net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4401 ) -> Result<(), fidl::Error> {
4402 self.client.send::<NetworkContextGetNetworkManagerRequest>(
4403 (net_manager,),
4404 0x379899a30766afd4,
4405 fidl::encoding::DynamicFlags::empty(),
4406 )
4407 }
4408
4409 pub fn r#get_endpoint_manager(
4410 &self,
4411 mut endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4412 ) -> Result<(), fidl::Error> {
4413 self.client.send::<NetworkContextGetEndpointManagerRequest>(
4414 (endp_manager,),
4415 0x5e64360363b9bd81,
4416 fidl::encoding::DynamicFlags::empty(),
4417 )
4418 }
4419
4420 pub fn r#setup(
4425 &self,
4426 mut networks: &[NetworkSetup],
4427 ___deadline: zx::MonotonicInstant,
4428 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>), fidl::Error> {
4429 let _response = self.client.send_query::<
4430 NetworkContextSetupRequest,
4431 NetworkContextSetupResponse,
4432 NetworkContextMarker,
4433 >(
4434 (networks,),
4435 0x1680e0b13823fc8c,
4436 fidl::encoding::DynamicFlags::empty(),
4437 ___deadline,
4438 )?;
4439 Ok((_response.status, _response.setup_handle))
4440 }
4441}
4442
4443#[cfg(target_os = "fuchsia")]
4444impl From<NetworkContextSynchronousProxy> for zx::NullableHandle {
4445 fn from(value: NetworkContextSynchronousProxy) -> Self {
4446 value.into_channel().into()
4447 }
4448}
4449
4450#[cfg(target_os = "fuchsia")]
4451impl From<fidl::Channel> for NetworkContextSynchronousProxy {
4452 fn from(value: fidl::Channel) -> Self {
4453 Self::new(value)
4454 }
4455}
4456
4457#[cfg(target_os = "fuchsia")]
4458impl fidl::endpoints::FromClient for NetworkContextSynchronousProxy {
4459 type Protocol = NetworkContextMarker;
4460
4461 fn from_client(value: fidl::endpoints::ClientEnd<NetworkContextMarker>) -> Self {
4462 Self::new(value.into_channel())
4463 }
4464}
4465
4466#[derive(Debug, Clone)]
4467pub struct NetworkContextProxy {
4468 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
4469}
4470
4471impl fidl::endpoints::Proxy for NetworkContextProxy {
4472 type Protocol = NetworkContextMarker;
4473
4474 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
4475 Self::new(inner)
4476 }
4477
4478 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
4479 self.client.into_channel().map_err(|client| Self { client })
4480 }
4481
4482 fn as_channel(&self) -> &::fidl::AsyncChannel {
4483 self.client.as_channel()
4484 }
4485}
4486
4487impl NetworkContextProxy {
4488 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
4490 let protocol_name = <NetworkContextMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4491 Self { client: fidl::client::Client::new(channel, protocol_name) }
4492 }
4493
4494 pub fn take_event_stream(&self) -> NetworkContextEventStream {
4500 NetworkContextEventStream { event_receiver: self.client.take_event_receiver() }
4501 }
4502
4503 pub fn r#clone(
4504 &self,
4505 mut network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4506 ) -> Result<(), fidl::Error> {
4507 NetworkContextProxyInterface::r#clone(self, network_context)
4508 }
4509
4510 pub fn r#get_network_manager(
4511 &self,
4512 mut net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4513 ) -> Result<(), fidl::Error> {
4514 NetworkContextProxyInterface::r#get_network_manager(self, net_manager)
4515 }
4516
4517 pub fn r#get_endpoint_manager(
4518 &self,
4519 mut endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4520 ) -> Result<(), fidl::Error> {
4521 NetworkContextProxyInterface::r#get_endpoint_manager(self, endp_manager)
4522 }
4523
4524 pub fn r#setup(
4529 &self,
4530 mut networks: &[NetworkSetup],
4531 ) -> fidl::client::QueryResponseFut<
4532 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4533 fidl::encoding::DefaultFuchsiaResourceDialect,
4534 > {
4535 NetworkContextProxyInterface::r#setup(self, networks)
4536 }
4537}
4538
4539impl NetworkContextProxyInterface for NetworkContextProxy {
4540 fn r#clone(
4541 &self,
4542 mut network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4543 ) -> Result<(), fidl::Error> {
4544 self.client.send::<NetworkContextCloneRequest>(
4545 (network_context,),
4546 0x1f7eb1b78a2ad2b0,
4547 fidl::encoding::DynamicFlags::empty(),
4548 )
4549 }
4550
4551 fn r#get_network_manager(
4552 &self,
4553 mut net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4554 ) -> Result<(), fidl::Error> {
4555 self.client.send::<NetworkContextGetNetworkManagerRequest>(
4556 (net_manager,),
4557 0x379899a30766afd4,
4558 fidl::encoding::DynamicFlags::empty(),
4559 )
4560 }
4561
4562 fn r#get_endpoint_manager(
4563 &self,
4564 mut endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4565 ) -> Result<(), fidl::Error> {
4566 self.client.send::<NetworkContextGetEndpointManagerRequest>(
4567 (endp_manager,),
4568 0x5e64360363b9bd81,
4569 fidl::encoding::DynamicFlags::empty(),
4570 )
4571 }
4572
4573 type SetupResponseFut = fidl::client::QueryResponseFut<
4574 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4575 fidl::encoding::DefaultFuchsiaResourceDialect,
4576 >;
4577 fn r#setup(&self, mut networks: &[NetworkSetup]) -> Self::SetupResponseFut {
4578 fn _decode(
4579 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
4580 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>), fidl::Error>
4581 {
4582 let _response = fidl::client::decode_transaction_body::<
4583 NetworkContextSetupResponse,
4584 fidl::encoding::DefaultFuchsiaResourceDialect,
4585 0x1680e0b13823fc8c,
4586 >(_buf?)?;
4587 Ok((_response.status, _response.setup_handle))
4588 }
4589 self.client.send_query_and_decode::<
4590 NetworkContextSetupRequest,
4591 (i32, Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>),
4592 >(
4593 (networks,),
4594 0x1680e0b13823fc8c,
4595 fidl::encoding::DynamicFlags::empty(),
4596 _decode,
4597 )
4598 }
4599}
4600
4601pub struct NetworkContextEventStream {
4602 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
4603}
4604
4605impl std::marker::Unpin for NetworkContextEventStream {}
4606
4607impl futures::stream::FusedStream for NetworkContextEventStream {
4608 fn is_terminated(&self) -> bool {
4609 self.event_receiver.is_terminated()
4610 }
4611}
4612
4613impl futures::Stream for NetworkContextEventStream {
4614 type Item = Result<NetworkContextEvent, fidl::Error>;
4615
4616 fn poll_next(
4617 mut self: std::pin::Pin<&mut Self>,
4618 cx: &mut std::task::Context<'_>,
4619 ) -> std::task::Poll<Option<Self::Item>> {
4620 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4621 &mut self.event_receiver,
4622 cx
4623 )?) {
4624 Some(buf) => std::task::Poll::Ready(Some(NetworkContextEvent::decode(buf))),
4625 None => std::task::Poll::Ready(None),
4626 }
4627 }
4628}
4629
4630#[derive(Debug)]
4631pub enum NetworkContextEvent {}
4632
4633impl NetworkContextEvent {
4634 fn decode(
4636 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4637 ) -> Result<NetworkContextEvent, fidl::Error> {
4638 let (bytes, _handles) = buf.split_mut();
4639 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4640 debug_assert_eq!(tx_header.tx_id, 0);
4641 match tx_header.ordinal {
4642 _ => Err(fidl::Error::UnknownOrdinal {
4643 ordinal: tx_header.ordinal,
4644 protocol_name:
4645 <NetworkContextMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4646 }),
4647 }
4648 }
4649}
4650
4651pub struct NetworkContextRequestStream {
4653 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4654 is_terminated: bool,
4655}
4656
4657impl std::marker::Unpin for NetworkContextRequestStream {}
4658
4659impl futures::stream::FusedStream for NetworkContextRequestStream {
4660 fn is_terminated(&self) -> bool {
4661 self.is_terminated
4662 }
4663}
4664
4665impl fidl::endpoints::RequestStream for NetworkContextRequestStream {
4666 type Protocol = NetworkContextMarker;
4667 type ControlHandle = NetworkContextControlHandle;
4668
4669 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
4670 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4671 }
4672
4673 fn control_handle(&self) -> Self::ControlHandle {
4674 NetworkContextControlHandle { inner: self.inner.clone() }
4675 }
4676
4677 fn into_inner(
4678 self,
4679 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
4680 {
4681 (self.inner, self.is_terminated)
4682 }
4683
4684 fn from_inner(
4685 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4686 is_terminated: bool,
4687 ) -> Self {
4688 Self { inner, is_terminated }
4689 }
4690}
4691
4692impl futures::Stream for NetworkContextRequestStream {
4693 type Item = Result<NetworkContextRequest, fidl::Error>;
4694
4695 fn poll_next(
4696 mut self: std::pin::Pin<&mut Self>,
4697 cx: &mut std::task::Context<'_>,
4698 ) -> std::task::Poll<Option<Self::Item>> {
4699 let this = &mut *self;
4700 if this.inner.check_shutdown(cx) {
4701 this.is_terminated = true;
4702 return std::task::Poll::Ready(None);
4703 }
4704 if this.is_terminated {
4705 panic!("polled NetworkContextRequestStream after completion");
4706 }
4707 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
4708 |bytes, handles| {
4709 match this.inner.channel().read_etc(cx, bytes, handles) {
4710 std::task::Poll::Ready(Ok(())) => {}
4711 std::task::Poll::Pending => return std::task::Poll::Pending,
4712 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
4713 this.is_terminated = true;
4714 return std::task::Poll::Ready(None);
4715 }
4716 std::task::Poll::Ready(Err(e)) => {
4717 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4718 e.into(),
4719 ))));
4720 }
4721 }
4722
4723 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4725
4726 std::task::Poll::Ready(Some(match header.ordinal {
4727 0x1f7eb1b78a2ad2b0 => {
4728 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4729 let mut req = fidl::new_empty!(
4730 NetworkContextCloneRequest,
4731 fidl::encoding::DefaultFuchsiaResourceDialect
4732 );
4733 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextCloneRequest>(&header, _body_bytes, handles, &mut req)?;
4734 let control_handle =
4735 NetworkContextControlHandle { inner: this.inner.clone() };
4736 Ok(NetworkContextRequest::Clone {
4737 network_context: req.network_context,
4738
4739 control_handle,
4740 })
4741 }
4742 0x379899a30766afd4 => {
4743 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4744 let mut req = fidl::new_empty!(
4745 NetworkContextGetNetworkManagerRequest,
4746 fidl::encoding::DefaultFuchsiaResourceDialect
4747 );
4748 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextGetNetworkManagerRequest>(&header, _body_bytes, handles, &mut req)?;
4749 let control_handle =
4750 NetworkContextControlHandle { inner: this.inner.clone() };
4751 Ok(NetworkContextRequest::GetNetworkManager {
4752 net_manager: req.net_manager,
4753
4754 control_handle,
4755 })
4756 }
4757 0x5e64360363b9bd81 => {
4758 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4759 let mut req = fidl::new_empty!(
4760 NetworkContextGetEndpointManagerRequest,
4761 fidl::encoding::DefaultFuchsiaResourceDialect
4762 );
4763 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextGetEndpointManagerRequest>(&header, _body_bytes, handles, &mut req)?;
4764 let control_handle =
4765 NetworkContextControlHandle { inner: this.inner.clone() };
4766 Ok(NetworkContextRequest::GetEndpointManager {
4767 endp_manager: req.endp_manager,
4768
4769 control_handle,
4770 })
4771 }
4772 0x1680e0b13823fc8c => {
4773 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
4774 let mut req = fidl::new_empty!(
4775 NetworkContextSetupRequest,
4776 fidl::encoding::DefaultFuchsiaResourceDialect
4777 );
4778 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkContextSetupRequest>(&header, _body_bytes, handles, &mut req)?;
4779 let control_handle =
4780 NetworkContextControlHandle { inner: this.inner.clone() };
4781 Ok(NetworkContextRequest::Setup {
4782 networks: req.networks,
4783
4784 responder: NetworkContextSetupResponder {
4785 control_handle: std::mem::ManuallyDrop::new(control_handle),
4786 tx_id: header.tx_id,
4787 },
4788 })
4789 }
4790 _ => Err(fidl::Error::UnknownOrdinal {
4791 ordinal: header.ordinal,
4792 protocol_name:
4793 <NetworkContextMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4794 }),
4795 }))
4796 },
4797 )
4798 }
4799}
4800
4801#[derive(Debug)]
4807pub enum NetworkContextRequest {
4808 Clone {
4809 network_context: fidl::endpoints::ServerEnd<NetworkContextMarker>,
4810 control_handle: NetworkContextControlHandle,
4811 },
4812 GetNetworkManager {
4813 net_manager: fidl::endpoints::ServerEnd<NetworkManagerMarker>,
4814 control_handle: NetworkContextControlHandle,
4815 },
4816 GetEndpointManager {
4817 endp_manager: fidl::endpoints::ServerEnd<EndpointManagerMarker>,
4818 control_handle: NetworkContextControlHandle,
4819 },
4820 Setup { networks: Vec<NetworkSetup>, responder: NetworkContextSetupResponder },
4825}
4826
4827impl NetworkContextRequest {
4828 #[allow(irrefutable_let_patterns)]
4829 pub fn into_clone(
4830 self,
4831 ) -> Option<(fidl::endpoints::ServerEnd<NetworkContextMarker>, NetworkContextControlHandle)>
4832 {
4833 if let NetworkContextRequest::Clone { network_context, control_handle } = self {
4834 Some((network_context, control_handle))
4835 } else {
4836 None
4837 }
4838 }
4839
4840 #[allow(irrefutable_let_patterns)]
4841 pub fn into_get_network_manager(
4842 self,
4843 ) -> Option<(fidl::endpoints::ServerEnd<NetworkManagerMarker>, NetworkContextControlHandle)>
4844 {
4845 if let NetworkContextRequest::GetNetworkManager { net_manager, control_handle } = self {
4846 Some((net_manager, control_handle))
4847 } else {
4848 None
4849 }
4850 }
4851
4852 #[allow(irrefutable_let_patterns)]
4853 pub fn into_get_endpoint_manager(
4854 self,
4855 ) -> Option<(fidl::endpoints::ServerEnd<EndpointManagerMarker>, NetworkContextControlHandle)>
4856 {
4857 if let NetworkContextRequest::GetEndpointManager { endp_manager, control_handle } = self {
4858 Some((endp_manager, control_handle))
4859 } else {
4860 None
4861 }
4862 }
4863
4864 #[allow(irrefutable_let_patterns)]
4865 pub fn into_setup(self) -> Option<(Vec<NetworkSetup>, NetworkContextSetupResponder)> {
4866 if let NetworkContextRequest::Setup { networks, responder } = self {
4867 Some((networks, responder))
4868 } else {
4869 None
4870 }
4871 }
4872
4873 pub fn method_name(&self) -> &'static str {
4875 match *self {
4876 NetworkContextRequest::Clone { .. } => "clone",
4877 NetworkContextRequest::GetNetworkManager { .. } => "get_network_manager",
4878 NetworkContextRequest::GetEndpointManager { .. } => "get_endpoint_manager",
4879 NetworkContextRequest::Setup { .. } => "setup",
4880 }
4881 }
4882}
4883
4884#[derive(Debug, Clone)]
4885pub struct NetworkContextControlHandle {
4886 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4887}
4888
4889impl NetworkContextControlHandle {
4890 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
4891 self.inner.shutdown_with_epitaph(status.into())
4892 }
4893}
4894
4895impl fidl::endpoints::ControlHandle for NetworkContextControlHandle {
4896 fn shutdown(&self) {
4897 self.inner.shutdown()
4898 }
4899
4900 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
4901 self.inner.shutdown_with_epitaph(status)
4902 }
4903
4904 fn is_closed(&self) -> bool {
4905 self.inner.channel().is_closed()
4906 }
4907 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4908 self.inner.channel().on_closed()
4909 }
4910
4911 #[cfg(target_os = "fuchsia")]
4912 fn signal_peer(
4913 &self,
4914 clear_mask: zx::Signals,
4915 set_mask: zx::Signals,
4916 ) -> Result<(), zx_status::Status> {
4917 use fidl::Peered;
4918 self.inner.channel().signal_peer(clear_mask, set_mask)
4919 }
4920}
4921
4922impl NetworkContextControlHandle {}
4923
4924#[must_use = "FIDL methods require a response to be sent"]
4925#[derive(Debug)]
4926pub struct NetworkContextSetupResponder {
4927 control_handle: std::mem::ManuallyDrop<NetworkContextControlHandle>,
4928 tx_id: u32,
4929}
4930
4931impl std::ops::Drop for NetworkContextSetupResponder {
4935 fn drop(&mut self) {
4936 self.control_handle.shutdown();
4937 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4939 }
4940}
4941
4942impl fidl::endpoints::Responder for NetworkContextSetupResponder {
4943 type ControlHandle = NetworkContextControlHandle;
4944
4945 fn control_handle(&self) -> &NetworkContextControlHandle {
4946 &self.control_handle
4947 }
4948
4949 fn drop_without_shutdown(mut self) {
4950 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4952 std::mem::forget(self);
4954 }
4955}
4956
4957impl NetworkContextSetupResponder {
4958 pub fn send(
4962 self,
4963 mut status: i32,
4964 mut setup_handle: Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
4965 ) -> Result<(), fidl::Error> {
4966 let _result = self.send_raw(status, setup_handle);
4967 if _result.is_err() {
4968 self.control_handle.shutdown();
4969 }
4970 self.drop_without_shutdown();
4971 _result
4972 }
4973
4974 pub fn send_no_shutdown_on_err(
4976 self,
4977 mut status: i32,
4978 mut setup_handle: Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
4979 ) -> Result<(), fidl::Error> {
4980 let _result = self.send_raw(status, setup_handle);
4981 self.drop_without_shutdown();
4982 _result
4983 }
4984
4985 fn send_raw(
4986 &self,
4987 mut status: i32,
4988 mut setup_handle: Option<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
4989 ) -> Result<(), fidl::Error> {
4990 self.control_handle.inner.send::<NetworkContextSetupResponse>(
4991 (status, setup_handle),
4992 self.tx_id,
4993 0x1680e0b13823fc8c,
4994 fidl::encoding::DynamicFlags::empty(),
4995 )
4996 }
4997}
4998
4999#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
5000pub struct NetworkManagerMarker;
5001
5002impl fidl::endpoints::ProtocolMarker for NetworkManagerMarker {
5003 type Proxy = NetworkManagerProxy;
5004 type RequestStream = NetworkManagerRequestStream;
5005 #[cfg(target_os = "fuchsia")]
5006 type SynchronousProxy = NetworkManagerSynchronousProxy;
5007
5008 const DEBUG_NAME: &'static str = "(anonymous) NetworkManager";
5009}
5010
5011pub trait NetworkManagerProxyInterface: Send + Sync {
5012 type ListNetworksResponseFut: std::future::Future<Output = Result<Vec<String>, fidl::Error>>
5013 + Send;
5014 fn r#list_networks(&self) -> Self::ListNetworksResponseFut;
5015 type CreateNetworkResponseFut: std::future::Future<
5016 Output = Result<(i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>), fidl::Error>,
5017 > + Send;
5018 fn r#create_network(
5019 &self,
5020 name: &str,
5021 config: &NetworkConfig,
5022 ) -> Self::CreateNetworkResponseFut;
5023 type GetNetworkResponseFut: std::future::Future<
5024 Output = Result<Option<fidl::endpoints::ClientEnd<NetworkMarker>>, fidl::Error>,
5025 > + Send;
5026 fn r#get_network(&self, name: &str) -> Self::GetNetworkResponseFut;
5027}
5028#[derive(Debug)]
5029#[cfg(target_os = "fuchsia")]
5030pub struct NetworkManagerSynchronousProxy {
5031 client: fidl::client::sync::Client,
5032}
5033
5034#[cfg(target_os = "fuchsia")]
5035impl fidl::endpoints::SynchronousProxy for NetworkManagerSynchronousProxy {
5036 type Proxy = NetworkManagerProxy;
5037 type Protocol = NetworkManagerMarker;
5038
5039 fn from_channel(inner: fidl::Channel) -> Self {
5040 Self::new(inner)
5041 }
5042
5043 fn into_channel(self) -> fidl::Channel {
5044 self.client.into_channel()
5045 }
5046
5047 fn as_channel(&self) -> &fidl::Channel {
5048 self.client.as_channel()
5049 }
5050}
5051
5052#[cfg(target_os = "fuchsia")]
5053impl NetworkManagerSynchronousProxy {
5054 pub fn new(channel: fidl::Channel) -> Self {
5055 Self { client: fidl::client::sync::Client::new(channel) }
5056 }
5057
5058 pub fn into_channel(self) -> fidl::Channel {
5059 self.client.into_channel()
5060 }
5061
5062 pub fn wait_for_event(
5065 &self,
5066 deadline: zx::MonotonicInstant,
5067 ) -> Result<NetworkManagerEvent, fidl::Error> {
5068 NetworkManagerEvent::decode(self.client.wait_for_event::<NetworkManagerMarker>(deadline)?)
5069 }
5070
5071 pub fn r#list_networks(
5073 &self,
5074 ___deadline: zx::MonotonicInstant,
5075 ) -> Result<Vec<String>, fidl::Error> {
5076 let _response = self.client.send_query::<
5077 fidl::encoding::EmptyPayload,
5078 NetworkManagerListNetworksResponse,
5079 NetworkManagerMarker,
5080 >(
5081 (),
5082 0x2488653e0974cc62,
5083 fidl::encoding::DynamicFlags::empty(),
5084 ___deadline,
5085 )?;
5086 Ok(_response.nets)
5087 }
5088
5089 pub fn r#create_network(
5091 &self,
5092 mut name: &str,
5093 mut config: &NetworkConfig,
5094 ___deadline: zx::MonotonicInstant,
5095 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>), fidl::Error> {
5096 let _response = self.client.send_query::<
5097 NetworkManagerCreateNetworkRequest,
5098 NetworkManagerCreateNetworkResponse,
5099 NetworkManagerMarker,
5100 >(
5101 (name, config,),
5102 0x6052eb5ac709af,
5103 fidl::encoding::DynamicFlags::empty(),
5104 ___deadline,
5105 )?;
5106 Ok((_response.status, _response.net))
5107 }
5108
5109 pub fn r#get_network(
5111 &self,
5112 mut name: &str,
5113 ___deadline: zx::MonotonicInstant,
5114 ) -> Result<Option<fidl::endpoints::ClientEnd<NetworkMarker>>, fidl::Error> {
5115 let _response = self.client.send_query::<
5116 NetworkManagerGetNetworkRequest,
5117 NetworkManagerGetNetworkResponse,
5118 NetworkManagerMarker,
5119 >(
5120 (name,),
5121 0x59930bf23acc7d9a,
5122 fidl::encoding::DynamicFlags::empty(),
5123 ___deadline,
5124 )?;
5125 Ok(_response.net)
5126 }
5127}
5128
5129#[cfg(target_os = "fuchsia")]
5130impl From<NetworkManagerSynchronousProxy> for zx::NullableHandle {
5131 fn from(value: NetworkManagerSynchronousProxy) -> Self {
5132 value.into_channel().into()
5133 }
5134}
5135
5136#[cfg(target_os = "fuchsia")]
5137impl From<fidl::Channel> for NetworkManagerSynchronousProxy {
5138 fn from(value: fidl::Channel) -> Self {
5139 Self::new(value)
5140 }
5141}
5142
5143#[cfg(target_os = "fuchsia")]
5144impl fidl::endpoints::FromClient for NetworkManagerSynchronousProxy {
5145 type Protocol = NetworkManagerMarker;
5146
5147 fn from_client(value: fidl::endpoints::ClientEnd<NetworkManagerMarker>) -> Self {
5148 Self::new(value.into_channel())
5149 }
5150}
5151
5152#[derive(Debug, Clone)]
5153pub struct NetworkManagerProxy {
5154 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5155}
5156
5157impl fidl::endpoints::Proxy for NetworkManagerProxy {
5158 type Protocol = NetworkManagerMarker;
5159
5160 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5161 Self::new(inner)
5162 }
5163
5164 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5165 self.client.into_channel().map_err(|client| Self { client })
5166 }
5167
5168 fn as_channel(&self) -> &::fidl::AsyncChannel {
5169 self.client.as_channel()
5170 }
5171}
5172
5173impl NetworkManagerProxy {
5174 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5176 let protocol_name = <NetworkManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5177 Self { client: fidl::client::Client::new(channel, protocol_name) }
5178 }
5179
5180 pub fn take_event_stream(&self) -> NetworkManagerEventStream {
5186 NetworkManagerEventStream { event_receiver: self.client.take_event_receiver() }
5187 }
5188
5189 pub fn r#list_networks(
5191 &self,
5192 ) -> fidl::client::QueryResponseFut<Vec<String>, fidl::encoding::DefaultFuchsiaResourceDialect>
5193 {
5194 NetworkManagerProxyInterface::r#list_networks(self)
5195 }
5196
5197 pub fn r#create_network(
5199 &self,
5200 mut name: &str,
5201 mut config: &NetworkConfig,
5202 ) -> fidl::client::QueryResponseFut<
5203 (i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>),
5204 fidl::encoding::DefaultFuchsiaResourceDialect,
5205 > {
5206 NetworkManagerProxyInterface::r#create_network(self, name, config)
5207 }
5208
5209 pub fn r#get_network(
5211 &self,
5212 mut name: &str,
5213 ) -> fidl::client::QueryResponseFut<
5214 Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5215 fidl::encoding::DefaultFuchsiaResourceDialect,
5216 > {
5217 NetworkManagerProxyInterface::r#get_network(self, name)
5218 }
5219}
5220
5221impl NetworkManagerProxyInterface for NetworkManagerProxy {
5222 type ListNetworksResponseFut =
5223 fidl::client::QueryResponseFut<Vec<String>, fidl::encoding::DefaultFuchsiaResourceDialect>;
5224 fn r#list_networks(&self) -> Self::ListNetworksResponseFut {
5225 fn _decode(
5226 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5227 ) -> Result<Vec<String>, fidl::Error> {
5228 let _response = fidl::client::decode_transaction_body::<
5229 NetworkManagerListNetworksResponse,
5230 fidl::encoding::DefaultFuchsiaResourceDialect,
5231 0x2488653e0974cc62,
5232 >(_buf?)?;
5233 Ok(_response.nets)
5234 }
5235 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, Vec<String>>(
5236 (),
5237 0x2488653e0974cc62,
5238 fidl::encoding::DynamicFlags::empty(),
5239 _decode,
5240 )
5241 }
5242
5243 type CreateNetworkResponseFut = fidl::client::QueryResponseFut<
5244 (i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>),
5245 fidl::encoding::DefaultFuchsiaResourceDialect,
5246 >;
5247 fn r#create_network(
5248 &self,
5249 mut name: &str,
5250 mut config: &NetworkConfig,
5251 ) -> Self::CreateNetworkResponseFut {
5252 fn _decode(
5253 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5254 ) -> Result<(i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>), fidl::Error> {
5255 let _response = fidl::client::decode_transaction_body::<
5256 NetworkManagerCreateNetworkResponse,
5257 fidl::encoding::DefaultFuchsiaResourceDialect,
5258 0x6052eb5ac709af,
5259 >(_buf?)?;
5260 Ok((_response.status, _response.net))
5261 }
5262 self.client.send_query_and_decode::<
5263 NetworkManagerCreateNetworkRequest,
5264 (i32, Option<fidl::endpoints::ClientEnd<NetworkMarker>>),
5265 >(
5266 (name, config,),
5267 0x6052eb5ac709af,
5268 fidl::encoding::DynamicFlags::empty(),
5269 _decode,
5270 )
5271 }
5272
5273 type GetNetworkResponseFut = fidl::client::QueryResponseFut<
5274 Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5275 fidl::encoding::DefaultFuchsiaResourceDialect,
5276 >;
5277 fn r#get_network(&self, mut name: &str) -> Self::GetNetworkResponseFut {
5278 fn _decode(
5279 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5280 ) -> Result<Option<fidl::endpoints::ClientEnd<NetworkMarker>>, fidl::Error> {
5281 let _response = fidl::client::decode_transaction_body::<
5282 NetworkManagerGetNetworkResponse,
5283 fidl::encoding::DefaultFuchsiaResourceDialect,
5284 0x59930bf23acc7d9a,
5285 >(_buf?)?;
5286 Ok(_response.net)
5287 }
5288 self.client.send_query_and_decode::<
5289 NetworkManagerGetNetworkRequest,
5290 Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5291 >(
5292 (name,),
5293 0x59930bf23acc7d9a,
5294 fidl::encoding::DynamicFlags::empty(),
5295 _decode,
5296 )
5297 }
5298}
5299
5300pub struct NetworkManagerEventStream {
5301 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5302}
5303
5304impl std::marker::Unpin for NetworkManagerEventStream {}
5305
5306impl futures::stream::FusedStream for NetworkManagerEventStream {
5307 fn is_terminated(&self) -> bool {
5308 self.event_receiver.is_terminated()
5309 }
5310}
5311
5312impl futures::Stream for NetworkManagerEventStream {
5313 type Item = Result<NetworkManagerEvent, fidl::Error>;
5314
5315 fn poll_next(
5316 mut self: std::pin::Pin<&mut Self>,
5317 cx: &mut std::task::Context<'_>,
5318 ) -> std::task::Poll<Option<Self::Item>> {
5319 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5320 &mut self.event_receiver,
5321 cx
5322 )?) {
5323 Some(buf) => std::task::Poll::Ready(Some(NetworkManagerEvent::decode(buf))),
5324 None => std::task::Poll::Ready(None),
5325 }
5326 }
5327}
5328
5329#[derive(Debug)]
5330pub enum NetworkManagerEvent {}
5331
5332impl NetworkManagerEvent {
5333 fn decode(
5335 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5336 ) -> Result<NetworkManagerEvent, fidl::Error> {
5337 let (bytes, _handles) = buf.split_mut();
5338 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5339 debug_assert_eq!(tx_header.tx_id, 0);
5340 match tx_header.ordinal {
5341 _ => Err(fidl::Error::UnknownOrdinal {
5342 ordinal: tx_header.ordinal,
5343 protocol_name:
5344 <NetworkManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5345 }),
5346 }
5347 }
5348}
5349
5350pub struct NetworkManagerRequestStream {
5352 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5353 is_terminated: bool,
5354}
5355
5356impl std::marker::Unpin for NetworkManagerRequestStream {}
5357
5358impl futures::stream::FusedStream for NetworkManagerRequestStream {
5359 fn is_terminated(&self) -> bool {
5360 self.is_terminated
5361 }
5362}
5363
5364impl fidl::endpoints::RequestStream for NetworkManagerRequestStream {
5365 type Protocol = NetworkManagerMarker;
5366 type ControlHandle = NetworkManagerControlHandle;
5367
5368 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5369 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5370 }
5371
5372 fn control_handle(&self) -> Self::ControlHandle {
5373 NetworkManagerControlHandle { inner: self.inner.clone() }
5374 }
5375
5376 fn into_inner(
5377 self,
5378 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5379 {
5380 (self.inner, self.is_terminated)
5381 }
5382
5383 fn from_inner(
5384 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5385 is_terminated: bool,
5386 ) -> Self {
5387 Self { inner, is_terminated }
5388 }
5389}
5390
5391impl futures::Stream for NetworkManagerRequestStream {
5392 type Item = Result<NetworkManagerRequest, fidl::Error>;
5393
5394 fn poll_next(
5395 mut self: std::pin::Pin<&mut Self>,
5396 cx: &mut std::task::Context<'_>,
5397 ) -> std::task::Poll<Option<Self::Item>> {
5398 let this = &mut *self;
5399 if this.inner.check_shutdown(cx) {
5400 this.is_terminated = true;
5401 return std::task::Poll::Ready(None);
5402 }
5403 if this.is_terminated {
5404 panic!("polled NetworkManagerRequestStream after completion");
5405 }
5406 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
5407 |bytes, handles| {
5408 match this.inner.channel().read_etc(cx, bytes, handles) {
5409 std::task::Poll::Ready(Ok(())) => {}
5410 std::task::Poll::Pending => return std::task::Poll::Pending,
5411 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
5412 this.is_terminated = true;
5413 return std::task::Poll::Ready(None);
5414 }
5415 std::task::Poll::Ready(Err(e)) => {
5416 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
5417 e.into(),
5418 ))));
5419 }
5420 }
5421
5422 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5424
5425 std::task::Poll::Ready(Some(match header.ordinal {
5426 0x2488653e0974cc62 => {
5427 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5428 let mut req = fidl::new_empty!(
5429 fidl::encoding::EmptyPayload,
5430 fidl::encoding::DefaultFuchsiaResourceDialect
5431 );
5432 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
5433 let control_handle =
5434 NetworkManagerControlHandle { inner: this.inner.clone() };
5435 Ok(NetworkManagerRequest::ListNetworks {
5436 responder: NetworkManagerListNetworksResponder {
5437 control_handle: std::mem::ManuallyDrop::new(control_handle),
5438 tx_id: header.tx_id,
5439 },
5440 })
5441 }
5442 0x6052eb5ac709af => {
5443 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5444 let mut req = fidl::new_empty!(
5445 NetworkManagerCreateNetworkRequest,
5446 fidl::encoding::DefaultFuchsiaResourceDialect
5447 );
5448 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkManagerCreateNetworkRequest>(&header, _body_bytes, handles, &mut req)?;
5449 let control_handle =
5450 NetworkManagerControlHandle { inner: this.inner.clone() };
5451 Ok(NetworkManagerRequest::CreateNetwork {
5452 name: req.name,
5453 config: req.config,
5454
5455 responder: NetworkManagerCreateNetworkResponder {
5456 control_handle: std::mem::ManuallyDrop::new(control_handle),
5457 tx_id: header.tx_id,
5458 },
5459 })
5460 }
5461 0x59930bf23acc7d9a => {
5462 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
5463 let mut req = fidl::new_empty!(
5464 NetworkManagerGetNetworkRequest,
5465 fidl::encoding::DefaultFuchsiaResourceDialect
5466 );
5467 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NetworkManagerGetNetworkRequest>(&header, _body_bytes, handles, &mut req)?;
5468 let control_handle =
5469 NetworkManagerControlHandle { inner: this.inner.clone() };
5470 Ok(NetworkManagerRequest::GetNetwork {
5471 name: req.name,
5472
5473 responder: NetworkManagerGetNetworkResponder {
5474 control_handle: std::mem::ManuallyDrop::new(control_handle),
5475 tx_id: header.tx_id,
5476 },
5477 })
5478 }
5479 _ => Err(fidl::Error::UnknownOrdinal {
5480 ordinal: header.ordinal,
5481 protocol_name:
5482 <NetworkManagerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5483 }),
5484 }))
5485 },
5486 )
5487 }
5488}
5489
5490#[derive(Debug)]
5492pub enum NetworkManagerRequest {
5493 ListNetworks { responder: NetworkManagerListNetworksResponder },
5495 CreateNetwork {
5497 name: String,
5498 config: NetworkConfig,
5499 responder: NetworkManagerCreateNetworkResponder,
5500 },
5501 GetNetwork { name: String, responder: NetworkManagerGetNetworkResponder },
5503}
5504
5505impl NetworkManagerRequest {
5506 #[allow(irrefutable_let_patterns)]
5507 pub fn into_list_networks(self) -> Option<(NetworkManagerListNetworksResponder)> {
5508 if let NetworkManagerRequest::ListNetworks { responder } = self {
5509 Some((responder))
5510 } else {
5511 None
5512 }
5513 }
5514
5515 #[allow(irrefutable_let_patterns)]
5516 pub fn into_create_network(
5517 self,
5518 ) -> Option<(String, NetworkConfig, NetworkManagerCreateNetworkResponder)> {
5519 if let NetworkManagerRequest::CreateNetwork { name, config, responder } = self {
5520 Some((name, config, responder))
5521 } else {
5522 None
5523 }
5524 }
5525
5526 #[allow(irrefutable_let_patterns)]
5527 pub fn into_get_network(self) -> Option<(String, NetworkManagerGetNetworkResponder)> {
5528 if let NetworkManagerRequest::GetNetwork { name, responder } = self {
5529 Some((name, responder))
5530 } else {
5531 None
5532 }
5533 }
5534
5535 pub fn method_name(&self) -> &'static str {
5537 match *self {
5538 NetworkManagerRequest::ListNetworks { .. } => "list_networks",
5539 NetworkManagerRequest::CreateNetwork { .. } => "create_network",
5540 NetworkManagerRequest::GetNetwork { .. } => "get_network",
5541 }
5542 }
5543}
5544
5545#[derive(Debug, Clone)]
5546pub struct NetworkManagerControlHandle {
5547 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5548}
5549
5550impl NetworkManagerControlHandle {
5551 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
5552 self.inner.shutdown_with_epitaph(status.into())
5553 }
5554}
5555
5556impl fidl::endpoints::ControlHandle for NetworkManagerControlHandle {
5557 fn shutdown(&self) {
5558 self.inner.shutdown()
5559 }
5560
5561 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
5562 self.inner.shutdown_with_epitaph(status)
5563 }
5564
5565 fn is_closed(&self) -> bool {
5566 self.inner.channel().is_closed()
5567 }
5568 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
5569 self.inner.channel().on_closed()
5570 }
5571
5572 #[cfg(target_os = "fuchsia")]
5573 fn signal_peer(
5574 &self,
5575 clear_mask: zx::Signals,
5576 set_mask: zx::Signals,
5577 ) -> Result<(), zx_status::Status> {
5578 use fidl::Peered;
5579 self.inner.channel().signal_peer(clear_mask, set_mask)
5580 }
5581}
5582
5583impl NetworkManagerControlHandle {}
5584
5585#[must_use = "FIDL methods require a response to be sent"]
5586#[derive(Debug)]
5587pub struct NetworkManagerListNetworksResponder {
5588 control_handle: std::mem::ManuallyDrop<NetworkManagerControlHandle>,
5589 tx_id: u32,
5590}
5591
5592impl std::ops::Drop for NetworkManagerListNetworksResponder {
5596 fn drop(&mut self) {
5597 self.control_handle.shutdown();
5598 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5600 }
5601}
5602
5603impl fidl::endpoints::Responder for NetworkManagerListNetworksResponder {
5604 type ControlHandle = NetworkManagerControlHandle;
5605
5606 fn control_handle(&self) -> &NetworkManagerControlHandle {
5607 &self.control_handle
5608 }
5609
5610 fn drop_without_shutdown(mut self) {
5611 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5613 std::mem::forget(self);
5615 }
5616}
5617
5618impl NetworkManagerListNetworksResponder {
5619 pub fn send(self, mut nets: &[String]) -> Result<(), fidl::Error> {
5623 let _result = self.send_raw(nets);
5624 if _result.is_err() {
5625 self.control_handle.shutdown();
5626 }
5627 self.drop_without_shutdown();
5628 _result
5629 }
5630
5631 pub fn send_no_shutdown_on_err(self, mut nets: &[String]) -> Result<(), fidl::Error> {
5633 let _result = self.send_raw(nets);
5634 self.drop_without_shutdown();
5635 _result
5636 }
5637
5638 fn send_raw(&self, mut nets: &[String]) -> Result<(), fidl::Error> {
5639 self.control_handle.inner.send::<NetworkManagerListNetworksResponse>(
5640 (nets,),
5641 self.tx_id,
5642 0x2488653e0974cc62,
5643 fidl::encoding::DynamicFlags::empty(),
5644 )
5645 }
5646}
5647
5648#[must_use = "FIDL methods require a response to be sent"]
5649#[derive(Debug)]
5650pub struct NetworkManagerCreateNetworkResponder {
5651 control_handle: std::mem::ManuallyDrop<NetworkManagerControlHandle>,
5652 tx_id: u32,
5653}
5654
5655impl std::ops::Drop for NetworkManagerCreateNetworkResponder {
5659 fn drop(&mut self) {
5660 self.control_handle.shutdown();
5661 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5663 }
5664}
5665
5666impl fidl::endpoints::Responder for NetworkManagerCreateNetworkResponder {
5667 type ControlHandle = NetworkManagerControlHandle;
5668
5669 fn control_handle(&self) -> &NetworkManagerControlHandle {
5670 &self.control_handle
5671 }
5672
5673 fn drop_without_shutdown(mut self) {
5674 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5676 std::mem::forget(self);
5678 }
5679}
5680
5681impl NetworkManagerCreateNetworkResponder {
5682 pub fn send(
5686 self,
5687 mut status: i32,
5688 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5689 ) -> Result<(), fidl::Error> {
5690 let _result = self.send_raw(status, net);
5691 if _result.is_err() {
5692 self.control_handle.shutdown();
5693 }
5694 self.drop_without_shutdown();
5695 _result
5696 }
5697
5698 pub fn send_no_shutdown_on_err(
5700 self,
5701 mut status: i32,
5702 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5703 ) -> Result<(), fidl::Error> {
5704 let _result = self.send_raw(status, net);
5705 self.drop_without_shutdown();
5706 _result
5707 }
5708
5709 fn send_raw(
5710 &self,
5711 mut status: i32,
5712 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5713 ) -> Result<(), fidl::Error> {
5714 self.control_handle.inner.send::<NetworkManagerCreateNetworkResponse>(
5715 (status, net),
5716 self.tx_id,
5717 0x6052eb5ac709af,
5718 fidl::encoding::DynamicFlags::empty(),
5719 )
5720 }
5721}
5722
5723#[must_use = "FIDL methods require a response to be sent"]
5724#[derive(Debug)]
5725pub struct NetworkManagerGetNetworkResponder {
5726 control_handle: std::mem::ManuallyDrop<NetworkManagerControlHandle>,
5727 tx_id: u32,
5728}
5729
5730impl std::ops::Drop for NetworkManagerGetNetworkResponder {
5734 fn drop(&mut self) {
5735 self.control_handle.shutdown();
5736 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5738 }
5739}
5740
5741impl fidl::endpoints::Responder for NetworkManagerGetNetworkResponder {
5742 type ControlHandle = NetworkManagerControlHandle;
5743
5744 fn control_handle(&self) -> &NetworkManagerControlHandle {
5745 &self.control_handle
5746 }
5747
5748 fn drop_without_shutdown(mut self) {
5749 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5751 std::mem::forget(self);
5753 }
5754}
5755
5756impl NetworkManagerGetNetworkResponder {
5757 pub fn send(
5761 self,
5762 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5763 ) -> Result<(), fidl::Error> {
5764 let _result = self.send_raw(net);
5765 if _result.is_err() {
5766 self.control_handle.shutdown();
5767 }
5768 self.drop_without_shutdown();
5769 _result
5770 }
5771
5772 pub fn send_no_shutdown_on_err(
5774 self,
5775 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5776 ) -> Result<(), fidl::Error> {
5777 let _result = self.send_raw(net);
5778 self.drop_without_shutdown();
5779 _result
5780 }
5781
5782 fn send_raw(
5783 &self,
5784 mut net: Option<fidl::endpoints::ClientEnd<NetworkMarker>>,
5785 ) -> Result<(), fidl::Error> {
5786 self.control_handle.inner.send::<NetworkManagerGetNetworkResponse>(
5787 (net,),
5788 self.tx_id,
5789 0x59930bf23acc7d9a,
5790 fidl::encoding::DynamicFlags::empty(),
5791 )
5792 }
5793}
5794
5795#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
5796pub struct SetupHandleMarker;
5797
5798impl fidl::endpoints::ProtocolMarker for SetupHandleMarker {
5799 type Proxy = SetupHandleProxy;
5800 type RequestStream = SetupHandleRequestStream;
5801 #[cfg(target_os = "fuchsia")]
5802 type SynchronousProxy = SetupHandleSynchronousProxy;
5803
5804 const DEBUG_NAME: &'static str = "(anonymous) SetupHandle";
5805}
5806
5807pub trait SetupHandleProxyInterface: Send + Sync {}
5808#[derive(Debug)]
5809#[cfg(target_os = "fuchsia")]
5810pub struct SetupHandleSynchronousProxy {
5811 client: fidl::client::sync::Client,
5812}
5813
5814#[cfg(target_os = "fuchsia")]
5815impl fidl::endpoints::SynchronousProxy for SetupHandleSynchronousProxy {
5816 type Proxy = SetupHandleProxy;
5817 type Protocol = SetupHandleMarker;
5818
5819 fn from_channel(inner: fidl::Channel) -> Self {
5820 Self::new(inner)
5821 }
5822
5823 fn into_channel(self) -> fidl::Channel {
5824 self.client.into_channel()
5825 }
5826
5827 fn as_channel(&self) -> &fidl::Channel {
5828 self.client.as_channel()
5829 }
5830}
5831
5832#[cfg(target_os = "fuchsia")]
5833impl SetupHandleSynchronousProxy {
5834 pub fn new(channel: fidl::Channel) -> Self {
5835 Self { client: fidl::client::sync::Client::new(channel) }
5836 }
5837
5838 pub fn into_channel(self) -> fidl::Channel {
5839 self.client.into_channel()
5840 }
5841
5842 pub fn wait_for_event(
5845 &self,
5846 deadline: zx::MonotonicInstant,
5847 ) -> Result<SetupHandleEvent, fidl::Error> {
5848 SetupHandleEvent::decode(self.client.wait_for_event::<SetupHandleMarker>(deadline)?)
5849 }
5850}
5851
5852#[cfg(target_os = "fuchsia")]
5853impl From<SetupHandleSynchronousProxy> for zx::NullableHandle {
5854 fn from(value: SetupHandleSynchronousProxy) -> Self {
5855 value.into_channel().into()
5856 }
5857}
5858
5859#[cfg(target_os = "fuchsia")]
5860impl From<fidl::Channel> for SetupHandleSynchronousProxy {
5861 fn from(value: fidl::Channel) -> Self {
5862 Self::new(value)
5863 }
5864}
5865
5866#[cfg(target_os = "fuchsia")]
5867impl fidl::endpoints::FromClient for SetupHandleSynchronousProxy {
5868 type Protocol = SetupHandleMarker;
5869
5870 fn from_client(value: fidl::endpoints::ClientEnd<SetupHandleMarker>) -> Self {
5871 Self::new(value.into_channel())
5872 }
5873}
5874
5875#[derive(Debug, Clone)]
5876pub struct SetupHandleProxy {
5877 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5878}
5879
5880impl fidl::endpoints::Proxy for SetupHandleProxy {
5881 type Protocol = SetupHandleMarker;
5882
5883 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5884 Self::new(inner)
5885 }
5886
5887 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5888 self.client.into_channel().map_err(|client| Self { client })
5889 }
5890
5891 fn as_channel(&self) -> &::fidl::AsyncChannel {
5892 self.client.as_channel()
5893 }
5894}
5895
5896impl SetupHandleProxy {
5897 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5899 let protocol_name = <SetupHandleMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5900 Self { client: fidl::client::Client::new(channel, protocol_name) }
5901 }
5902
5903 pub fn take_event_stream(&self) -> SetupHandleEventStream {
5909 SetupHandleEventStream { event_receiver: self.client.take_event_receiver() }
5910 }
5911}
5912
5913impl SetupHandleProxyInterface for SetupHandleProxy {}
5914
5915pub struct SetupHandleEventStream {
5916 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
5917}
5918
5919impl std::marker::Unpin for SetupHandleEventStream {}
5920
5921impl futures::stream::FusedStream for SetupHandleEventStream {
5922 fn is_terminated(&self) -> bool {
5923 self.event_receiver.is_terminated()
5924 }
5925}
5926
5927impl futures::Stream for SetupHandleEventStream {
5928 type Item = Result<SetupHandleEvent, fidl::Error>;
5929
5930 fn poll_next(
5931 mut self: std::pin::Pin<&mut Self>,
5932 cx: &mut std::task::Context<'_>,
5933 ) -> std::task::Poll<Option<Self::Item>> {
5934 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
5935 &mut self.event_receiver,
5936 cx
5937 )?) {
5938 Some(buf) => std::task::Poll::Ready(Some(SetupHandleEvent::decode(buf))),
5939 None => std::task::Poll::Ready(None),
5940 }
5941 }
5942}
5943
5944#[derive(Debug)]
5945pub enum SetupHandleEvent {}
5946
5947impl SetupHandleEvent {
5948 fn decode(
5950 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
5951 ) -> Result<SetupHandleEvent, fidl::Error> {
5952 let (bytes, _handles) = buf.split_mut();
5953 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
5954 debug_assert_eq!(tx_header.tx_id, 0);
5955 match tx_header.ordinal {
5956 _ => Err(fidl::Error::UnknownOrdinal {
5957 ordinal: tx_header.ordinal,
5958 protocol_name: <SetupHandleMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
5959 }),
5960 }
5961 }
5962}
5963
5964pub struct SetupHandleRequestStream {
5966 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5967 is_terminated: bool,
5968}
5969
5970impl std::marker::Unpin for SetupHandleRequestStream {}
5971
5972impl futures::stream::FusedStream for SetupHandleRequestStream {
5973 fn is_terminated(&self) -> bool {
5974 self.is_terminated
5975 }
5976}
5977
5978impl fidl::endpoints::RequestStream for SetupHandleRequestStream {
5979 type Protocol = SetupHandleMarker;
5980 type ControlHandle = SetupHandleControlHandle;
5981
5982 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
5983 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
5984 }
5985
5986 fn control_handle(&self) -> Self::ControlHandle {
5987 SetupHandleControlHandle { inner: self.inner.clone() }
5988 }
5989
5990 fn into_inner(
5991 self,
5992 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
5993 {
5994 (self.inner, self.is_terminated)
5995 }
5996
5997 fn from_inner(
5998 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5999 is_terminated: bool,
6000 ) -> Self {
6001 Self { inner, is_terminated }
6002 }
6003}
6004
6005impl futures::Stream for SetupHandleRequestStream {
6006 type Item = Result<SetupHandleRequest, fidl::Error>;
6007
6008 fn poll_next(
6009 mut self: std::pin::Pin<&mut Self>,
6010 cx: &mut std::task::Context<'_>,
6011 ) -> std::task::Poll<Option<Self::Item>> {
6012 let this = &mut *self;
6013 if this.inner.check_shutdown(cx) {
6014 this.is_terminated = true;
6015 return std::task::Poll::Ready(None);
6016 }
6017 if this.is_terminated {
6018 panic!("polled SetupHandleRequestStream after completion");
6019 }
6020 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
6021 |bytes, handles| {
6022 match this.inner.channel().read_etc(cx, bytes, handles) {
6023 std::task::Poll::Ready(Ok(())) => {}
6024 std::task::Poll::Pending => return std::task::Poll::Pending,
6025 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
6026 this.is_terminated = true;
6027 return std::task::Poll::Ready(None);
6028 }
6029 std::task::Poll::Ready(Err(e)) => {
6030 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
6031 e.into(),
6032 ))));
6033 }
6034 }
6035
6036 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6038
6039 std::task::Poll::Ready(Some(match header.ordinal {
6040 _ => Err(fidl::Error::UnknownOrdinal {
6041 ordinal: header.ordinal,
6042 protocol_name:
6043 <SetupHandleMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6044 }),
6045 }))
6046 },
6047 )
6048 }
6049}
6050
6051#[derive(Debug)]
6054pub enum SetupHandleRequest {}
6055
6056impl SetupHandleRequest {
6057 pub fn method_name(&self) -> &'static str {
6059 match *self {}
6060 }
6061}
6062
6063#[derive(Debug, Clone)]
6064pub struct SetupHandleControlHandle {
6065 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6066}
6067
6068impl SetupHandleControlHandle {
6069 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
6070 self.inner.shutdown_with_epitaph(status.into())
6071 }
6072}
6073
6074impl fidl::endpoints::ControlHandle for SetupHandleControlHandle {
6075 fn shutdown(&self) {
6076 self.inner.shutdown()
6077 }
6078
6079 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
6080 self.inner.shutdown_with_epitaph(status)
6081 }
6082
6083 fn is_closed(&self) -> bool {
6084 self.inner.channel().is_closed()
6085 }
6086 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
6087 self.inner.channel().on_closed()
6088 }
6089
6090 #[cfg(target_os = "fuchsia")]
6091 fn signal_peer(
6092 &self,
6093 clear_mask: zx::Signals,
6094 set_mask: zx::Signals,
6095 ) -> Result<(), zx_status::Status> {
6096 use fidl::Peered;
6097 self.inner.channel().signal_peer(clear_mask, set_mask)
6098 }
6099}
6100
6101impl SetupHandleControlHandle {}
6102
6103mod internal {
6104 use super::*;
6105
6106 impl fidl::encoding::ResourceTypeMarker for DeviceProxyServeControllerRequest {
6107 type Borrowed<'a> = &'a mut Self;
6108 fn take_or_borrow<'a>(
6109 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6110 ) -> Self::Borrowed<'a> {
6111 value
6112 }
6113 }
6114
6115 unsafe impl fidl::encoding::TypeMarker for DeviceProxyServeControllerRequest {
6116 type Owned = Self;
6117
6118 #[inline(always)]
6119 fn inline_align(_context: fidl::encoding::Context) -> usize {
6120 4
6121 }
6122
6123 #[inline(always)]
6124 fn inline_size(_context: fidl::encoding::Context) -> usize {
6125 4
6126 }
6127 }
6128
6129 unsafe impl
6130 fidl::encoding::Encode<
6131 DeviceProxyServeControllerRequest,
6132 fidl::encoding::DefaultFuchsiaResourceDialect,
6133 > for &mut DeviceProxyServeControllerRequest
6134 {
6135 #[inline]
6136 unsafe fn encode(
6137 self,
6138 encoder: &mut fidl::encoding::Encoder<
6139 '_,
6140 fidl::encoding::DefaultFuchsiaResourceDialect,
6141 >,
6142 offset: usize,
6143 _depth: fidl::encoding::Depth,
6144 ) -> fidl::Result<()> {
6145 encoder.debug_check_bounds::<DeviceProxyServeControllerRequest>(offset);
6146 fidl::encoding::Encode::<
6148 DeviceProxyServeControllerRequest,
6149 fidl::encoding::DefaultFuchsiaResourceDialect,
6150 >::encode(
6151 (<fidl::encoding::Endpoint<
6152 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6153 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6154 &mut self.req
6155 ),),
6156 encoder,
6157 offset,
6158 _depth,
6159 )
6160 }
6161 }
6162 unsafe impl<
6163 T0: fidl::encoding::Encode<
6164 fidl::encoding::Endpoint<
6165 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6166 >,
6167 fidl::encoding::DefaultFuchsiaResourceDialect,
6168 >,
6169 >
6170 fidl::encoding::Encode<
6171 DeviceProxyServeControllerRequest,
6172 fidl::encoding::DefaultFuchsiaResourceDialect,
6173 > for (T0,)
6174 {
6175 #[inline]
6176 unsafe fn encode(
6177 self,
6178 encoder: &mut fidl::encoding::Encoder<
6179 '_,
6180 fidl::encoding::DefaultFuchsiaResourceDialect,
6181 >,
6182 offset: usize,
6183 depth: fidl::encoding::Depth,
6184 ) -> fidl::Result<()> {
6185 encoder.debug_check_bounds::<DeviceProxyServeControllerRequest>(offset);
6186 self.0.encode(encoder, offset + 0, depth)?;
6190 Ok(())
6191 }
6192 }
6193
6194 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6195 for DeviceProxyServeControllerRequest
6196 {
6197 #[inline(always)]
6198 fn new_empty() -> Self {
6199 Self {
6200 req: fidl::new_empty!(
6201 fidl::encoding::Endpoint<
6202 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6203 >,
6204 fidl::encoding::DefaultFuchsiaResourceDialect
6205 ),
6206 }
6207 }
6208
6209 #[inline]
6210 unsafe fn decode(
6211 &mut self,
6212 decoder: &mut fidl::encoding::Decoder<
6213 '_,
6214 fidl::encoding::DefaultFuchsiaResourceDialect,
6215 >,
6216 offset: usize,
6217 _depth: fidl::encoding::Depth,
6218 ) -> fidl::Result<()> {
6219 decoder.debug_check_bounds::<Self>(offset);
6220 fidl::decode!(
6222 fidl::encoding::Endpoint<
6223 fidl::endpoints::ServerEnd<fidl_fuchsia_device::ControllerMarker>,
6224 >,
6225 fidl::encoding::DefaultFuchsiaResourceDialect,
6226 &mut self.req,
6227 decoder,
6228 offset + 0,
6229 _depth
6230 )?;
6231 Ok(())
6232 }
6233 }
6234
6235 impl fidl::encoding::ResourceTypeMarker for DeviceProxyServeDeviceRequest {
6236 type Borrowed<'a> = &'a mut Self;
6237 fn take_or_borrow<'a>(
6238 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6239 ) -> Self::Borrowed<'a> {
6240 value
6241 }
6242 }
6243
6244 unsafe impl fidl::encoding::TypeMarker for DeviceProxyServeDeviceRequest {
6245 type Owned = Self;
6246
6247 #[inline(always)]
6248 fn inline_align(_context: fidl::encoding::Context) -> usize {
6249 4
6250 }
6251
6252 #[inline(always)]
6253 fn inline_size(_context: fidl::encoding::Context) -> usize {
6254 4
6255 }
6256 }
6257
6258 unsafe impl
6259 fidl::encoding::Encode<
6260 DeviceProxyServeDeviceRequest,
6261 fidl::encoding::DefaultFuchsiaResourceDialect,
6262 > for &mut DeviceProxyServeDeviceRequest
6263 {
6264 #[inline]
6265 unsafe fn encode(
6266 self,
6267 encoder: &mut fidl::encoding::Encoder<
6268 '_,
6269 fidl::encoding::DefaultFuchsiaResourceDialect,
6270 >,
6271 offset: usize,
6272 _depth: fidl::encoding::Depth,
6273 ) -> fidl::Result<()> {
6274 encoder.debug_check_bounds::<DeviceProxyServeDeviceRequest>(offset);
6275 fidl::encoding::Encode::<
6277 DeviceProxyServeDeviceRequest,
6278 fidl::encoding::DefaultFuchsiaResourceDialect,
6279 >::encode(
6280 (<fidl::encoding::Endpoint<
6281 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceMarker>,
6282 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6283 &mut self.req
6284 ),),
6285 encoder,
6286 offset,
6287 _depth,
6288 )
6289 }
6290 }
6291 unsafe impl<
6292 T0: fidl::encoding::Encode<
6293 fidl::encoding::Endpoint<
6294 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceMarker>,
6295 >,
6296 fidl::encoding::DefaultFuchsiaResourceDialect,
6297 >,
6298 >
6299 fidl::encoding::Encode<
6300 DeviceProxyServeDeviceRequest,
6301 fidl::encoding::DefaultFuchsiaResourceDialect,
6302 > for (T0,)
6303 {
6304 #[inline]
6305 unsafe fn encode(
6306 self,
6307 encoder: &mut fidl::encoding::Encoder<
6308 '_,
6309 fidl::encoding::DefaultFuchsiaResourceDialect,
6310 >,
6311 offset: usize,
6312 depth: fidl::encoding::Depth,
6313 ) -> fidl::Result<()> {
6314 encoder.debug_check_bounds::<DeviceProxyServeDeviceRequest>(offset);
6315 self.0.encode(encoder, offset + 0, depth)?;
6319 Ok(())
6320 }
6321 }
6322
6323 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6324 for DeviceProxyServeDeviceRequest
6325 {
6326 #[inline(always)]
6327 fn new_empty() -> Self {
6328 Self {
6329 req: fidl::new_empty!(
6330 fidl::encoding::Endpoint<
6331 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceMarker>,
6332 >,
6333 fidl::encoding::DefaultFuchsiaResourceDialect
6334 ),
6335 }
6336 }
6337
6338 #[inline]
6339 unsafe fn decode(
6340 &mut self,
6341 decoder: &mut fidl::encoding::Decoder<
6342 '_,
6343 fidl::encoding::DefaultFuchsiaResourceDialect,
6344 >,
6345 offset: usize,
6346 _depth: fidl::encoding::Depth,
6347 ) -> fidl::Result<()> {
6348 decoder.debug_check_bounds::<Self>(offset);
6349 fidl::decode!(
6351 fidl::encoding::Endpoint<
6352 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::DeviceMarker>,
6353 >,
6354 fidl::encoding::DefaultFuchsiaResourceDialect,
6355 &mut self.req,
6356 decoder,
6357 offset + 0,
6358 _depth
6359 )?;
6360 Ok(())
6361 }
6362 }
6363
6364 impl fidl::encoding::ResourceTypeMarker for EndpointGetPortRequest {
6365 type Borrowed<'a> = &'a mut Self;
6366 fn take_or_borrow<'a>(
6367 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6368 ) -> Self::Borrowed<'a> {
6369 value
6370 }
6371 }
6372
6373 unsafe impl fidl::encoding::TypeMarker for EndpointGetPortRequest {
6374 type Owned = Self;
6375
6376 #[inline(always)]
6377 fn inline_align(_context: fidl::encoding::Context) -> usize {
6378 4
6379 }
6380
6381 #[inline(always)]
6382 fn inline_size(_context: fidl::encoding::Context) -> usize {
6383 4
6384 }
6385 }
6386
6387 unsafe impl
6388 fidl::encoding::Encode<
6389 EndpointGetPortRequest,
6390 fidl::encoding::DefaultFuchsiaResourceDialect,
6391 > for &mut EndpointGetPortRequest
6392 {
6393 #[inline]
6394 unsafe fn encode(
6395 self,
6396 encoder: &mut fidl::encoding::Encoder<
6397 '_,
6398 fidl::encoding::DefaultFuchsiaResourceDialect,
6399 >,
6400 offset: usize,
6401 _depth: fidl::encoding::Depth,
6402 ) -> fidl::Result<()> {
6403 encoder.debug_check_bounds::<EndpointGetPortRequest>(offset);
6404 fidl::encoding::Encode::<
6406 EndpointGetPortRequest,
6407 fidl::encoding::DefaultFuchsiaResourceDialect,
6408 >::encode(
6409 (<fidl::encoding::Endpoint<
6410 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6411 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6412 &mut self.port
6413 ),),
6414 encoder,
6415 offset,
6416 _depth,
6417 )
6418 }
6419 }
6420 unsafe impl<
6421 T0: fidl::encoding::Encode<
6422 fidl::encoding::Endpoint<
6423 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6424 >,
6425 fidl::encoding::DefaultFuchsiaResourceDialect,
6426 >,
6427 >
6428 fidl::encoding::Encode<
6429 EndpointGetPortRequest,
6430 fidl::encoding::DefaultFuchsiaResourceDialect,
6431 > for (T0,)
6432 {
6433 #[inline]
6434 unsafe fn encode(
6435 self,
6436 encoder: &mut fidl::encoding::Encoder<
6437 '_,
6438 fidl::encoding::DefaultFuchsiaResourceDialect,
6439 >,
6440 offset: usize,
6441 depth: fidl::encoding::Depth,
6442 ) -> fidl::Result<()> {
6443 encoder.debug_check_bounds::<EndpointGetPortRequest>(offset);
6444 self.0.encode(encoder, offset + 0, depth)?;
6448 Ok(())
6449 }
6450 }
6451
6452 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6453 for EndpointGetPortRequest
6454 {
6455 #[inline(always)]
6456 fn new_empty() -> Self {
6457 Self {
6458 port: fidl::new_empty!(
6459 fidl::encoding::Endpoint<
6460 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6461 >,
6462 fidl::encoding::DefaultFuchsiaResourceDialect
6463 ),
6464 }
6465 }
6466
6467 #[inline]
6468 unsafe fn decode(
6469 &mut self,
6470 decoder: &mut fidl::encoding::Decoder<
6471 '_,
6472 fidl::encoding::DefaultFuchsiaResourceDialect,
6473 >,
6474 offset: usize,
6475 _depth: fidl::encoding::Depth,
6476 ) -> fidl::Result<()> {
6477 decoder.debug_check_bounds::<Self>(offset);
6478 fidl::decode!(
6480 fidl::encoding::Endpoint<
6481 fidl::endpoints::ServerEnd<fidl_fuchsia_hardware_network::PortMarker>,
6482 >,
6483 fidl::encoding::DefaultFuchsiaResourceDialect,
6484 &mut self.port,
6485 decoder,
6486 offset + 0,
6487 _depth
6488 )?;
6489 Ok(())
6490 }
6491 }
6492
6493 impl fidl::encoding::ResourceTypeMarker for EndpointGetProxyRequest {
6494 type Borrowed<'a> = &'a mut Self;
6495 fn take_or_borrow<'a>(
6496 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6497 ) -> Self::Borrowed<'a> {
6498 value
6499 }
6500 }
6501
6502 unsafe impl fidl::encoding::TypeMarker for EndpointGetProxyRequest {
6503 type Owned = Self;
6504
6505 #[inline(always)]
6506 fn inline_align(_context: fidl::encoding::Context) -> usize {
6507 4
6508 }
6509
6510 #[inline(always)]
6511 fn inline_size(_context: fidl::encoding::Context) -> usize {
6512 4
6513 }
6514 }
6515
6516 unsafe impl
6517 fidl::encoding::Encode<
6518 EndpointGetProxyRequest,
6519 fidl::encoding::DefaultFuchsiaResourceDialect,
6520 > for &mut EndpointGetProxyRequest
6521 {
6522 #[inline]
6523 unsafe fn encode(
6524 self,
6525 encoder: &mut fidl::encoding::Encoder<
6526 '_,
6527 fidl::encoding::DefaultFuchsiaResourceDialect,
6528 >,
6529 offset: usize,
6530 _depth: fidl::encoding::Depth,
6531 ) -> fidl::Result<()> {
6532 encoder.debug_check_bounds::<EndpointGetProxyRequest>(offset);
6533 fidl::encoding::Encode::<EndpointGetProxyRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6535 (
6536 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.proxy),
6537 ),
6538 encoder, offset, _depth
6539 )
6540 }
6541 }
6542 unsafe impl<
6543 T0: fidl::encoding::Encode<
6544 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6545 fidl::encoding::DefaultFuchsiaResourceDialect,
6546 >,
6547 >
6548 fidl::encoding::Encode<
6549 EndpointGetProxyRequest,
6550 fidl::encoding::DefaultFuchsiaResourceDialect,
6551 > for (T0,)
6552 {
6553 #[inline]
6554 unsafe fn encode(
6555 self,
6556 encoder: &mut fidl::encoding::Encoder<
6557 '_,
6558 fidl::encoding::DefaultFuchsiaResourceDialect,
6559 >,
6560 offset: usize,
6561 depth: fidl::encoding::Depth,
6562 ) -> fidl::Result<()> {
6563 encoder.debug_check_bounds::<EndpointGetProxyRequest>(offset);
6564 self.0.encode(encoder, offset + 0, depth)?;
6568 Ok(())
6569 }
6570 }
6571
6572 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6573 for EndpointGetProxyRequest
6574 {
6575 #[inline(always)]
6576 fn new_empty() -> Self {
6577 Self {
6578 proxy: fidl::new_empty!(
6579 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6580 fidl::encoding::DefaultFuchsiaResourceDialect
6581 ),
6582 }
6583 }
6584
6585 #[inline]
6586 unsafe fn decode(
6587 &mut self,
6588 decoder: &mut fidl::encoding::Decoder<
6589 '_,
6590 fidl::encoding::DefaultFuchsiaResourceDialect,
6591 >,
6592 offset: usize,
6593 _depth: fidl::encoding::Depth,
6594 ) -> fidl::Result<()> {
6595 decoder.debug_check_bounds::<Self>(offset);
6596 fidl::decode!(
6598 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<DeviceProxy_Marker>>,
6599 fidl::encoding::DefaultFuchsiaResourceDialect,
6600 &mut self.proxy,
6601 decoder,
6602 offset + 0,
6603 _depth
6604 )?;
6605 Ok(())
6606 }
6607 }
6608
6609 impl fidl::encoding::ResourceTypeMarker for EndpointManagerCreateEndpointResponse {
6610 type Borrowed<'a> = &'a mut Self;
6611 fn take_or_borrow<'a>(
6612 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6613 ) -> Self::Borrowed<'a> {
6614 value
6615 }
6616 }
6617
6618 unsafe impl fidl::encoding::TypeMarker for EndpointManagerCreateEndpointResponse {
6619 type Owned = Self;
6620
6621 #[inline(always)]
6622 fn inline_align(_context: fidl::encoding::Context) -> usize {
6623 4
6624 }
6625
6626 #[inline(always)]
6627 fn inline_size(_context: fidl::encoding::Context) -> usize {
6628 8
6629 }
6630 }
6631
6632 unsafe impl
6633 fidl::encoding::Encode<
6634 EndpointManagerCreateEndpointResponse,
6635 fidl::encoding::DefaultFuchsiaResourceDialect,
6636 > for &mut EndpointManagerCreateEndpointResponse
6637 {
6638 #[inline]
6639 unsafe fn encode(
6640 self,
6641 encoder: &mut fidl::encoding::Encoder<
6642 '_,
6643 fidl::encoding::DefaultFuchsiaResourceDialect,
6644 >,
6645 offset: usize,
6646 _depth: fidl::encoding::Depth,
6647 ) -> fidl::Result<()> {
6648 encoder.debug_check_bounds::<EndpointManagerCreateEndpointResponse>(offset);
6649 fidl::encoding::Encode::<
6651 EndpointManagerCreateEndpointResponse,
6652 fidl::encoding::DefaultFuchsiaResourceDialect,
6653 >::encode(
6654 (
6655 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
6656 <fidl::encoding::Optional<
6657 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6658 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6659 &mut self.endpoint
6660 ),
6661 ),
6662 encoder,
6663 offset,
6664 _depth,
6665 )
6666 }
6667 }
6668 unsafe impl<
6669 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
6670 T1: fidl::encoding::Encode<
6671 fidl::encoding::Optional<
6672 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6673 >,
6674 fidl::encoding::DefaultFuchsiaResourceDialect,
6675 >,
6676 >
6677 fidl::encoding::Encode<
6678 EndpointManagerCreateEndpointResponse,
6679 fidl::encoding::DefaultFuchsiaResourceDialect,
6680 > for (T0, T1)
6681 {
6682 #[inline]
6683 unsafe fn encode(
6684 self,
6685 encoder: &mut fidl::encoding::Encoder<
6686 '_,
6687 fidl::encoding::DefaultFuchsiaResourceDialect,
6688 >,
6689 offset: usize,
6690 depth: fidl::encoding::Depth,
6691 ) -> fidl::Result<()> {
6692 encoder.debug_check_bounds::<EndpointManagerCreateEndpointResponse>(offset);
6693 self.0.encode(encoder, offset + 0, depth)?;
6697 self.1.encode(encoder, offset + 4, depth)?;
6698 Ok(())
6699 }
6700 }
6701
6702 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6703 for EndpointManagerCreateEndpointResponse
6704 {
6705 #[inline(always)]
6706 fn new_empty() -> Self {
6707 Self {
6708 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
6709 endpoint: fidl::new_empty!(
6710 fidl::encoding::Optional<
6711 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6712 >,
6713 fidl::encoding::DefaultFuchsiaResourceDialect
6714 ),
6715 }
6716 }
6717
6718 #[inline]
6719 unsafe fn decode(
6720 &mut self,
6721 decoder: &mut fidl::encoding::Decoder<
6722 '_,
6723 fidl::encoding::DefaultFuchsiaResourceDialect,
6724 >,
6725 offset: usize,
6726 _depth: fidl::encoding::Depth,
6727 ) -> fidl::Result<()> {
6728 decoder.debug_check_bounds::<Self>(offset);
6729 fidl::decode!(
6731 i32,
6732 fidl::encoding::DefaultFuchsiaResourceDialect,
6733 &mut self.status,
6734 decoder,
6735 offset + 0,
6736 _depth
6737 )?;
6738 fidl::decode!(
6739 fidl::encoding::Optional<
6740 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6741 >,
6742 fidl::encoding::DefaultFuchsiaResourceDialect,
6743 &mut self.endpoint,
6744 decoder,
6745 offset + 4,
6746 _depth
6747 )?;
6748 Ok(())
6749 }
6750 }
6751
6752 impl fidl::encoding::ResourceTypeMarker for EndpointManagerGetEndpointResponse {
6753 type Borrowed<'a> = &'a mut Self;
6754 fn take_or_borrow<'a>(
6755 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6756 ) -> Self::Borrowed<'a> {
6757 value
6758 }
6759 }
6760
6761 unsafe impl fidl::encoding::TypeMarker for EndpointManagerGetEndpointResponse {
6762 type Owned = Self;
6763
6764 #[inline(always)]
6765 fn inline_align(_context: fidl::encoding::Context) -> usize {
6766 4
6767 }
6768
6769 #[inline(always)]
6770 fn inline_size(_context: fidl::encoding::Context) -> usize {
6771 4
6772 }
6773 }
6774
6775 unsafe impl
6776 fidl::encoding::Encode<
6777 EndpointManagerGetEndpointResponse,
6778 fidl::encoding::DefaultFuchsiaResourceDialect,
6779 > for &mut EndpointManagerGetEndpointResponse
6780 {
6781 #[inline]
6782 unsafe fn encode(
6783 self,
6784 encoder: &mut fidl::encoding::Encoder<
6785 '_,
6786 fidl::encoding::DefaultFuchsiaResourceDialect,
6787 >,
6788 offset: usize,
6789 _depth: fidl::encoding::Depth,
6790 ) -> fidl::Result<()> {
6791 encoder.debug_check_bounds::<EndpointManagerGetEndpointResponse>(offset);
6792 fidl::encoding::Encode::<
6794 EndpointManagerGetEndpointResponse,
6795 fidl::encoding::DefaultFuchsiaResourceDialect,
6796 >::encode(
6797 (<fidl::encoding::Optional<
6798 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6799 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
6800 &mut self.endpoint
6801 ),),
6802 encoder,
6803 offset,
6804 _depth,
6805 )
6806 }
6807 }
6808 unsafe impl<
6809 T0: fidl::encoding::Encode<
6810 fidl::encoding::Optional<
6811 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6812 >,
6813 fidl::encoding::DefaultFuchsiaResourceDialect,
6814 >,
6815 >
6816 fidl::encoding::Encode<
6817 EndpointManagerGetEndpointResponse,
6818 fidl::encoding::DefaultFuchsiaResourceDialect,
6819 > for (T0,)
6820 {
6821 #[inline]
6822 unsafe fn encode(
6823 self,
6824 encoder: &mut fidl::encoding::Encoder<
6825 '_,
6826 fidl::encoding::DefaultFuchsiaResourceDialect,
6827 >,
6828 offset: usize,
6829 depth: fidl::encoding::Depth,
6830 ) -> fidl::Result<()> {
6831 encoder.debug_check_bounds::<EndpointManagerGetEndpointResponse>(offset);
6832 self.0.encode(encoder, offset + 0, depth)?;
6836 Ok(())
6837 }
6838 }
6839
6840 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6841 for EndpointManagerGetEndpointResponse
6842 {
6843 #[inline(always)]
6844 fn new_empty() -> Self {
6845 Self {
6846 endpoint: fidl::new_empty!(
6847 fidl::encoding::Optional<
6848 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6849 >,
6850 fidl::encoding::DefaultFuchsiaResourceDialect
6851 ),
6852 }
6853 }
6854
6855 #[inline]
6856 unsafe fn decode(
6857 &mut self,
6858 decoder: &mut fidl::encoding::Decoder<
6859 '_,
6860 fidl::encoding::DefaultFuchsiaResourceDialect,
6861 >,
6862 offset: usize,
6863 _depth: fidl::encoding::Depth,
6864 ) -> fidl::Result<()> {
6865 decoder.debug_check_bounds::<Self>(offset);
6866 fidl::decode!(
6868 fidl::encoding::Optional<
6869 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<EndpointMarker>>,
6870 >,
6871 fidl::encoding::DefaultFuchsiaResourceDialect,
6872 &mut self.endpoint,
6873 decoder,
6874 offset + 0,
6875 _depth
6876 )?;
6877 Ok(())
6878 }
6879 }
6880
6881 impl fidl::encoding::ResourceTypeMarker for NetworkContextCloneRequest {
6882 type Borrowed<'a> = &'a mut Self;
6883 fn take_or_borrow<'a>(
6884 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
6885 ) -> Self::Borrowed<'a> {
6886 value
6887 }
6888 }
6889
6890 unsafe impl fidl::encoding::TypeMarker for NetworkContextCloneRequest {
6891 type Owned = Self;
6892
6893 #[inline(always)]
6894 fn inline_align(_context: fidl::encoding::Context) -> usize {
6895 4
6896 }
6897
6898 #[inline(always)]
6899 fn inline_size(_context: fidl::encoding::Context) -> usize {
6900 4
6901 }
6902 }
6903
6904 unsafe impl
6905 fidl::encoding::Encode<
6906 NetworkContextCloneRequest,
6907 fidl::encoding::DefaultFuchsiaResourceDialect,
6908 > for &mut NetworkContextCloneRequest
6909 {
6910 #[inline]
6911 unsafe fn encode(
6912 self,
6913 encoder: &mut fidl::encoding::Encoder<
6914 '_,
6915 fidl::encoding::DefaultFuchsiaResourceDialect,
6916 >,
6917 offset: usize,
6918 _depth: fidl::encoding::Depth,
6919 ) -> fidl::Result<()> {
6920 encoder.debug_check_bounds::<NetworkContextCloneRequest>(offset);
6921 fidl::encoding::Encode::<NetworkContextCloneRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
6923 (
6924 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.network_context),
6925 ),
6926 encoder, offset, _depth
6927 )
6928 }
6929 }
6930 unsafe impl<
6931 T0: fidl::encoding::Encode<
6932 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6933 fidl::encoding::DefaultFuchsiaResourceDialect,
6934 >,
6935 >
6936 fidl::encoding::Encode<
6937 NetworkContextCloneRequest,
6938 fidl::encoding::DefaultFuchsiaResourceDialect,
6939 > for (T0,)
6940 {
6941 #[inline]
6942 unsafe fn encode(
6943 self,
6944 encoder: &mut fidl::encoding::Encoder<
6945 '_,
6946 fidl::encoding::DefaultFuchsiaResourceDialect,
6947 >,
6948 offset: usize,
6949 depth: fidl::encoding::Depth,
6950 ) -> fidl::Result<()> {
6951 encoder.debug_check_bounds::<NetworkContextCloneRequest>(offset);
6952 self.0.encode(encoder, offset + 0, depth)?;
6956 Ok(())
6957 }
6958 }
6959
6960 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
6961 for NetworkContextCloneRequest
6962 {
6963 #[inline(always)]
6964 fn new_empty() -> Self {
6965 Self {
6966 network_context: fidl::new_empty!(
6967 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6968 fidl::encoding::DefaultFuchsiaResourceDialect
6969 ),
6970 }
6971 }
6972
6973 #[inline]
6974 unsafe fn decode(
6975 &mut self,
6976 decoder: &mut fidl::encoding::Decoder<
6977 '_,
6978 fidl::encoding::DefaultFuchsiaResourceDialect,
6979 >,
6980 offset: usize,
6981 _depth: fidl::encoding::Depth,
6982 ) -> fidl::Result<()> {
6983 decoder.debug_check_bounds::<Self>(offset);
6984 fidl::decode!(
6986 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkContextMarker>>,
6987 fidl::encoding::DefaultFuchsiaResourceDialect,
6988 &mut self.network_context,
6989 decoder,
6990 offset + 0,
6991 _depth
6992 )?;
6993 Ok(())
6994 }
6995 }
6996
6997 impl fidl::encoding::ResourceTypeMarker for NetworkContextGetEndpointManagerRequest {
6998 type Borrowed<'a> = &'a mut Self;
6999 fn take_or_borrow<'a>(
7000 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7001 ) -> Self::Borrowed<'a> {
7002 value
7003 }
7004 }
7005
7006 unsafe impl fidl::encoding::TypeMarker for NetworkContextGetEndpointManagerRequest {
7007 type Owned = Self;
7008
7009 #[inline(always)]
7010 fn inline_align(_context: fidl::encoding::Context) -> usize {
7011 4
7012 }
7013
7014 #[inline(always)]
7015 fn inline_size(_context: fidl::encoding::Context) -> usize {
7016 4
7017 }
7018 }
7019
7020 unsafe impl
7021 fidl::encoding::Encode<
7022 NetworkContextGetEndpointManagerRequest,
7023 fidl::encoding::DefaultFuchsiaResourceDialect,
7024 > for &mut NetworkContextGetEndpointManagerRequest
7025 {
7026 #[inline]
7027 unsafe fn encode(
7028 self,
7029 encoder: &mut fidl::encoding::Encoder<
7030 '_,
7031 fidl::encoding::DefaultFuchsiaResourceDialect,
7032 >,
7033 offset: usize,
7034 _depth: fidl::encoding::Depth,
7035 ) -> fidl::Result<()> {
7036 encoder.debug_check_bounds::<NetworkContextGetEndpointManagerRequest>(offset);
7037 fidl::encoding::Encode::<NetworkContextGetEndpointManagerRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
7039 (
7040 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.endp_manager),
7041 ),
7042 encoder, offset, _depth
7043 )
7044 }
7045 }
7046 unsafe impl<
7047 T0: fidl::encoding::Encode<
7048 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7049 fidl::encoding::DefaultFuchsiaResourceDialect,
7050 >,
7051 >
7052 fidl::encoding::Encode<
7053 NetworkContextGetEndpointManagerRequest,
7054 fidl::encoding::DefaultFuchsiaResourceDialect,
7055 > for (T0,)
7056 {
7057 #[inline]
7058 unsafe fn encode(
7059 self,
7060 encoder: &mut fidl::encoding::Encoder<
7061 '_,
7062 fidl::encoding::DefaultFuchsiaResourceDialect,
7063 >,
7064 offset: usize,
7065 depth: fidl::encoding::Depth,
7066 ) -> fidl::Result<()> {
7067 encoder.debug_check_bounds::<NetworkContextGetEndpointManagerRequest>(offset);
7068 self.0.encode(encoder, offset + 0, depth)?;
7072 Ok(())
7073 }
7074 }
7075
7076 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7077 for NetworkContextGetEndpointManagerRequest
7078 {
7079 #[inline(always)]
7080 fn new_empty() -> Self {
7081 Self {
7082 endp_manager: fidl::new_empty!(
7083 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7084 fidl::encoding::DefaultFuchsiaResourceDialect
7085 ),
7086 }
7087 }
7088
7089 #[inline]
7090 unsafe fn decode(
7091 &mut self,
7092 decoder: &mut fidl::encoding::Decoder<
7093 '_,
7094 fidl::encoding::DefaultFuchsiaResourceDialect,
7095 >,
7096 offset: usize,
7097 _depth: fidl::encoding::Depth,
7098 ) -> fidl::Result<()> {
7099 decoder.debug_check_bounds::<Self>(offset);
7100 fidl::decode!(
7102 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<EndpointManagerMarker>>,
7103 fidl::encoding::DefaultFuchsiaResourceDialect,
7104 &mut self.endp_manager,
7105 decoder,
7106 offset + 0,
7107 _depth
7108 )?;
7109 Ok(())
7110 }
7111 }
7112
7113 impl fidl::encoding::ResourceTypeMarker for NetworkContextGetNetworkManagerRequest {
7114 type Borrowed<'a> = &'a mut Self;
7115 fn take_or_borrow<'a>(
7116 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7117 ) -> Self::Borrowed<'a> {
7118 value
7119 }
7120 }
7121
7122 unsafe impl fidl::encoding::TypeMarker for NetworkContextGetNetworkManagerRequest {
7123 type Owned = Self;
7124
7125 #[inline(always)]
7126 fn inline_align(_context: fidl::encoding::Context) -> usize {
7127 4
7128 }
7129
7130 #[inline(always)]
7131 fn inline_size(_context: fidl::encoding::Context) -> usize {
7132 4
7133 }
7134 }
7135
7136 unsafe impl
7137 fidl::encoding::Encode<
7138 NetworkContextGetNetworkManagerRequest,
7139 fidl::encoding::DefaultFuchsiaResourceDialect,
7140 > for &mut NetworkContextGetNetworkManagerRequest
7141 {
7142 #[inline]
7143 unsafe fn encode(
7144 self,
7145 encoder: &mut fidl::encoding::Encoder<
7146 '_,
7147 fidl::encoding::DefaultFuchsiaResourceDialect,
7148 >,
7149 offset: usize,
7150 _depth: fidl::encoding::Depth,
7151 ) -> fidl::Result<()> {
7152 encoder.debug_check_bounds::<NetworkContextGetNetworkManagerRequest>(offset);
7153 fidl::encoding::Encode::<NetworkContextGetNetworkManagerRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
7155 (
7156 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.net_manager),
7157 ),
7158 encoder, offset, _depth
7159 )
7160 }
7161 }
7162 unsafe impl<
7163 T0: fidl::encoding::Encode<
7164 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7165 fidl::encoding::DefaultFuchsiaResourceDialect,
7166 >,
7167 >
7168 fidl::encoding::Encode<
7169 NetworkContextGetNetworkManagerRequest,
7170 fidl::encoding::DefaultFuchsiaResourceDialect,
7171 > for (T0,)
7172 {
7173 #[inline]
7174 unsafe fn encode(
7175 self,
7176 encoder: &mut fidl::encoding::Encoder<
7177 '_,
7178 fidl::encoding::DefaultFuchsiaResourceDialect,
7179 >,
7180 offset: usize,
7181 depth: fidl::encoding::Depth,
7182 ) -> fidl::Result<()> {
7183 encoder.debug_check_bounds::<NetworkContextGetNetworkManagerRequest>(offset);
7184 self.0.encode(encoder, offset + 0, depth)?;
7188 Ok(())
7189 }
7190 }
7191
7192 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7193 for NetworkContextGetNetworkManagerRequest
7194 {
7195 #[inline(always)]
7196 fn new_empty() -> Self {
7197 Self {
7198 net_manager: fidl::new_empty!(
7199 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7200 fidl::encoding::DefaultFuchsiaResourceDialect
7201 ),
7202 }
7203 }
7204
7205 #[inline]
7206 unsafe fn decode(
7207 &mut self,
7208 decoder: &mut fidl::encoding::Decoder<
7209 '_,
7210 fidl::encoding::DefaultFuchsiaResourceDialect,
7211 >,
7212 offset: usize,
7213 _depth: fidl::encoding::Depth,
7214 ) -> fidl::Result<()> {
7215 decoder.debug_check_bounds::<Self>(offset);
7216 fidl::decode!(
7218 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<NetworkManagerMarker>>,
7219 fidl::encoding::DefaultFuchsiaResourceDialect,
7220 &mut self.net_manager,
7221 decoder,
7222 offset + 0,
7223 _depth
7224 )?;
7225 Ok(())
7226 }
7227 }
7228
7229 impl fidl::encoding::ResourceTypeMarker for NetworkContextSetupResponse {
7230 type Borrowed<'a> = &'a mut Self;
7231 fn take_or_borrow<'a>(
7232 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7233 ) -> Self::Borrowed<'a> {
7234 value
7235 }
7236 }
7237
7238 unsafe impl fidl::encoding::TypeMarker for NetworkContextSetupResponse {
7239 type Owned = Self;
7240
7241 #[inline(always)]
7242 fn inline_align(_context: fidl::encoding::Context) -> usize {
7243 4
7244 }
7245
7246 #[inline(always)]
7247 fn inline_size(_context: fidl::encoding::Context) -> usize {
7248 8
7249 }
7250 }
7251
7252 unsafe impl
7253 fidl::encoding::Encode<
7254 NetworkContextSetupResponse,
7255 fidl::encoding::DefaultFuchsiaResourceDialect,
7256 > for &mut NetworkContextSetupResponse
7257 {
7258 #[inline]
7259 unsafe fn encode(
7260 self,
7261 encoder: &mut fidl::encoding::Encoder<
7262 '_,
7263 fidl::encoding::DefaultFuchsiaResourceDialect,
7264 >,
7265 offset: usize,
7266 _depth: fidl::encoding::Depth,
7267 ) -> fidl::Result<()> {
7268 encoder.debug_check_bounds::<NetworkContextSetupResponse>(offset);
7269 fidl::encoding::Encode::<
7271 NetworkContextSetupResponse,
7272 fidl::encoding::DefaultFuchsiaResourceDialect,
7273 >::encode(
7274 (
7275 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
7276 <fidl::encoding::Optional<
7277 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7278 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7279 &mut self.setup_handle,
7280 ),
7281 ),
7282 encoder,
7283 offset,
7284 _depth,
7285 )
7286 }
7287 }
7288 unsafe impl<
7289 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
7290 T1: fidl::encoding::Encode<
7291 fidl::encoding::Optional<
7292 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7293 >,
7294 fidl::encoding::DefaultFuchsiaResourceDialect,
7295 >,
7296 >
7297 fidl::encoding::Encode<
7298 NetworkContextSetupResponse,
7299 fidl::encoding::DefaultFuchsiaResourceDialect,
7300 > for (T0, T1)
7301 {
7302 #[inline]
7303 unsafe fn encode(
7304 self,
7305 encoder: &mut fidl::encoding::Encoder<
7306 '_,
7307 fidl::encoding::DefaultFuchsiaResourceDialect,
7308 >,
7309 offset: usize,
7310 depth: fidl::encoding::Depth,
7311 ) -> fidl::Result<()> {
7312 encoder.debug_check_bounds::<NetworkContextSetupResponse>(offset);
7313 self.0.encode(encoder, offset + 0, depth)?;
7317 self.1.encode(encoder, offset + 4, depth)?;
7318 Ok(())
7319 }
7320 }
7321
7322 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7323 for NetworkContextSetupResponse
7324 {
7325 #[inline(always)]
7326 fn new_empty() -> Self {
7327 Self {
7328 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
7329 setup_handle: fidl::new_empty!(
7330 fidl::encoding::Optional<
7331 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7332 >,
7333 fidl::encoding::DefaultFuchsiaResourceDialect
7334 ),
7335 }
7336 }
7337
7338 #[inline]
7339 unsafe fn decode(
7340 &mut self,
7341 decoder: &mut fidl::encoding::Decoder<
7342 '_,
7343 fidl::encoding::DefaultFuchsiaResourceDialect,
7344 >,
7345 offset: usize,
7346 _depth: fidl::encoding::Depth,
7347 ) -> fidl::Result<()> {
7348 decoder.debug_check_bounds::<Self>(offset);
7349 fidl::decode!(
7351 i32,
7352 fidl::encoding::DefaultFuchsiaResourceDialect,
7353 &mut self.status,
7354 decoder,
7355 offset + 0,
7356 _depth
7357 )?;
7358 fidl::decode!(
7359 fidl::encoding::Optional<
7360 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<SetupHandleMarker>>,
7361 >,
7362 fidl::encoding::DefaultFuchsiaResourceDialect,
7363 &mut self.setup_handle,
7364 decoder,
7365 offset + 4,
7366 _depth
7367 )?;
7368 Ok(())
7369 }
7370 }
7371
7372 impl fidl::encoding::ResourceTypeMarker for NetworkCreateFakeEndpointRequest {
7373 type Borrowed<'a> = &'a mut Self;
7374 fn take_or_borrow<'a>(
7375 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7376 ) -> Self::Borrowed<'a> {
7377 value
7378 }
7379 }
7380
7381 unsafe impl fidl::encoding::TypeMarker for NetworkCreateFakeEndpointRequest {
7382 type Owned = Self;
7383
7384 #[inline(always)]
7385 fn inline_align(_context: fidl::encoding::Context) -> usize {
7386 4
7387 }
7388
7389 #[inline(always)]
7390 fn inline_size(_context: fidl::encoding::Context) -> usize {
7391 4
7392 }
7393 }
7394
7395 unsafe impl
7396 fidl::encoding::Encode<
7397 NetworkCreateFakeEndpointRequest,
7398 fidl::encoding::DefaultFuchsiaResourceDialect,
7399 > for &mut NetworkCreateFakeEndpointRequest
7400 {
7401 #[inline]
7402 unsafe fn encode(
7403 self,
7404 encoder: &mut fidl::encoding::Encoder<
7405 '_,
7406 fidl::encoding::DefaultFuchsiaResourceDialect,
7407 >,
7408 offset: usize,
7409 _depth: fidl::encoding::Depth,
7410 ) -> fidl::Result<()> {
7411 encoder.debug_check_bounds::<NetworkCreateFakeEndpointRequest>(offset);
7412 fidl::encoding::Encode::<NetworkCreateFakeEndpointRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
7414 (
7415 <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.ep),
7416 ),
7417 encoder, offset, _depth
7418 )
7419 }
7420 }
7421 unsafe impl<
7422 T0: fidl::encoding::Encode<
7423 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7424 fidl::encoding::DefaultFuchsiaResourceDialect,
7425 >,
7426 >
7427 fidl::encoding::Encode<
7428 NetworkCreateFakeEndpointRequest,
7429 fidl::encoding::DefaultFuchsiaResourceDialect,
7430 > for (T0,)
7431 {
7432 #[inline]
7433 unsafe fn encode(
7434 self,
7435 encoder: &mut fidl::encoding::Encoder<
7436 '_,
7437 fidl::encoding::DefaultFuchsiaResourceDialect,
7438 >,
7439 offset: usize,
7440 depth: fidl::encoding::Depth,
7441 ) -> fidl::Result<()> {
7442 encoder.debug_check_bounds::<NetworkCreateFakeEndpointRequest>(offset);
7443 self.0.encode(encoder, offset + 0, depth)?;
7447 Ok(())
7448 }
7449 }
7450
7451 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7452 for NetworkCreateFakeEndpointRequest
7453 {
7454 #[inline(always)]
7455 fn new_empty() -> Self {
7456 Self {
7457 ep: fidl::new_empty!(
7458 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7459 fidl::encoding::DefaultFuchsiaResourceDialect
7460 ),
7461 }
7462 }
7463
7464 #[inline]
7465 unsafe fn decode(
7466 &mut self,
7467 decoder: &mut fidl::encoding::Decoder<
7468 '_,
7469 fidl::encoding::DefaultFuchsiaResourceDialect,
7470 >,
7471 offset: usize,
7472 _depth: fidl::encoding::Depth,
7473 ) -> fidl::Result<()> {
7474 decoder.debug_check_bounds::<Self>(offset);
7475 fidl::decode!(
7477 fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<FakeEndpointMarker>>,
7478 fidl::encoding::DefaultFuchsiaResourceDialect,
7479 &mut self.ep,
7480 decoder,
7481 offset + 0,
7482 _depth
7483 )?;
7484 Ok(())
7485 }
7486 }
7487
7488 impl fidl::encoding::ResourceTypeMarker for NetworkManagerCreateNetworkResponse {
7489 type Borrowed<'a> = &'a mut Self;
7490 fn take_or_borrow<'a>(
7491 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7492 ) -> Self::Borrowed<'a> {
7493 value
7494 }
7495 }
7496
7497 unsafe impl fidl::encoding::TypeMarker for NetworkManagerCreateNetworkResponse {
7498 type Owned = Self;
7499
7500 #[inline(always)]
7501 fn inline_align(_context: fidl::encoding::Context) -> usize {
7502 4
7503 }
7504
7505 #[inline(always)]
7506 fn inline_size(_context: fidl::encoding::Context) -> usize {
7507 8
7508 }
7509 }
7510
7511 unsafe impl
7512 fidl::encoding::Encode<
7513 NetworkManagerCreateNetworkResponse,
7514 fidl::encoding::DefaultFuchsiaResourceDialect,
7515 > for &mut NetworkManagerCreateNetworkResponse
7516 {
7517 #[inline]
7518 unsafe fn encode(
7519 self,
7520 encoder: &mut fidl::encoding::Encoder<
7521 '_,
7522 fidl::encoding::DefaultFuchsiaResourceDialect,
7523 >,
7524 offset: usize,
7525 _depth: fidl::encoding::Depth,
7526 ) -> fidl::Result<()> {
7527 encoder.debug_check_bounds::<NetworkManagerCreateNetworkResponse>(offset);
7528 fidl::encoding::Encode::<
7530 NetworkManagerCreateNetworkResponse,
7531 fidl::encoding::DefaultFuchsiaResourceDialect,
7532 >::encode(
7533 (
7534 <i32 as fidl::encoding::ValueTypeMarker>::borrow(&self.status),
7535 <fidl::encoding::Optional<
7536 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7537 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7538 &mut self.net
7539 ),
7540 ),
7541 encoder,
7542 offset,
7543 _depth,
7544 )
7545 }
7546 }
7547 unsafe impl<
7548 T0: fidl::encoding::Encode<i32, fidl::encoding::DefaultFuchsiaResourceDialect>,
7549 T1: fidl::encoding::Encode<
7550 fidl::encoding::Optional<
7551 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7552 >,
7553 fidl::encoding::DefaultFuchsiaResourceDialect,
7554 >,
7555 >
7556 fidl::encoding::Encode<
7557 NetworkManagerCreateNetworkResponse,
7558 fidl::encoding::DefaultFuchsiaResourceDialect,
7559 > for (T0, T1)
7560 {
7561 #[inline]
7562 unsafe fn encode(
7563 self,
7564 encoder: &mut fidl::encoding::Encoder<
7565 '_,
7566 fidl::encoding::DefaultFuchsiaResourceDialect,
7567 >,
7568 offset: usize,
7569 depth: fidl::encoding::Depth,
7570 ) -> fidl::Result<()> {
7571 encoder.debug_check_bounds::<NetworkManagerCreateNetworkResponse>(offset);
7572 self.0.encode(encoder, offset + 0, depth)?;
7576 self.1.encode(encoder, offset + 4, depth)?;
7577 Ok(())
7578 }
7579 }
7580
7581 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7582 for NetworkManagerCreateNetworkResponse
7583 {
7584 #[inline(always)]
7585 fn new_empty() -> Self {
7586 Self {
7587 status: fidl::new_empty!(i32, fidl::encoding::DefaultFuchsiaResourceDialect),
7588 net: fidl::new_empty!(
7589 fidl::encoding::Optional<
7590 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7591 >,
7592 fidl::encoding::DefaultFuchsiaResourceDialect
7593 ),
7594 }
7595 }
7596
7597 #[inline]
7598 unsafe fn decode(
7599 &mut self,
7600 decoder: &mut fidl::encoding::Decoder<
7601 '_,
7602 fidl::encoding::DefaultFuchsiaResourceDialect,
7603 >,
7604 offset: usize,
7605 _depth: fidl::encoding::Depth,
7606 ) -> fidl::Result<()> {
7607 decoder.debug_check_bounds::<Self>(offset);
7608 fidl::decode!(
7610 i32,
7611 fidl::encoding::DefaultFuchsiaResourceDialect,
7612 &mut self.status,
7613 decoder,
7614 offset + 0,
7615 _depth
7616 )?;
7617 fidl::decode!(
7618 fidl::encoding::Optional<
7619 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7620 >,
7621 fidl::encoding::DefaultFuchsiaResourceDialect,
7622 &mut self.net,
7623 decoder,
7624 offset + 4,
7625 _depth
7626 )?;
7627 Ok(())
7628 }
7629 }
7630
7631 impl fidl::encoding::ResourceTypeMarker for NetworkManagerGetNetworkResponse {
7632 type Borrowed<'a> = &'a mut Self;
7633 fn take_or_borrow<'a>(
7634 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
7635 ) -> Self::Borrowed<'a> {
7636 value
7637 }
7638 }
7639
7640 unsafe impl fidl::encoding::TypeMarker for NetworkManagerGetNetworkResponse {
7641 type Owned = Self;
7642
7643 #[inline(always)]
7644 fn inline_align(_context: fidl::encoding::Context) -> usize {
7645 4
7646 }
7647
7648 #[inline(always)]
7649 fn inline_size(_context: fidl::encoding::Context) -> usize {
7650 4
7651 }
7652 }
7653
7654 unsafe impl
7655 fidl::encoding::Encode<
7656 NetworkManagerGetNetworkResponse,
7657 fidl::encoding::DefaultFuchsiaResourceDialect,
7658 > for &mut NetworkManagerGetNetworkResponse
7659 {
7660 #[inline]
7661 unsafe fn encode(
7662 self,
7663 encoder: &mut fidl::encoding::Encoder<
7664 '_,
7665 fidl::encoding::DefaultFuchsiaResourceDialect,
7666 >,
7667 offset: usize,
7668 _depth: fidl::encoding::Depth,
7669 ) -> fidl::Result<()> {
7670 encoder.debug_check_bounds::<NetworkManagerGetNetworkResponse>(offset);
7671 fidl::encoding::Encode::<
7673 NetworkManagerGetNetworkResponse,
7674 fidl::encoding::DefaultFuchsiaResourceDialect,
7675 >::encode(
7676 (<fidl::encoding::Optional<
7677 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7678 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
7679 &mut self.net
7680 ),),
7681 encoder,
7682 offset,
7683 _depth,
7684 )
7685 }
7686 }
7687 unsafe impl<
7688 T0: fidl::encoding::Encode<
7689 fidl::encoding::Optional<
7690 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7691 >,
7692 fidl::encoding::DefaultFuchsiaResourceDialect,
7693 >,
7694 >
7695 fidl::encoding::Encode<
7696 NetworkManagerGetNetworkResponse,
7697 fidl::encoding::DefaultFuchsiaResourceDialect,
7698 > for (T0,)
7699 {
7700 #[inline]
7701 unsafe fn encode(
7702 self,
7703 encoder: &mut fidl::encoding::Encoder<
7704 '_,
7705 fidl::encoding::DefaultFuchsiaResourceDialect,
7706 >,
7707 offset: usize,
7708 depth: fidl::encoding::Depth,
7709 ) -> fidl::Result<()> {
7710 encoder.debug_check_bounds::<NetworkManagerGetNetworkResponse>(offset);
7711 self.0.encode(encoder, offset + 0, depth)?;
7715 Ok(())
7716 }
7717 }
7718
7719 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
7720 for NetworkManagerGetNetworkResponse
7721 {
7722 #[inline(always)]
7723 fn new_empty() -> Self {
7724 Self {
7725 net: fidl::new_empty!(
7726 fidl::encoding::Optional<
7727 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7728 >,
7729 fidl::encoding::DefaultFuchsiaResourceDialect
7730 ),
7731 }
7732 }
7733
7734 #[inline]
7735 unsafe fn decode(
7736 &mut self,
7737 decoder: &mut fidl::encoding::Decoder<
7738 '_,
7739 fidl::encoding::DefaultFuchsiaResourceDialect,
7740 >,
7741 offset: usize,
7742 _depth: fidl::encoding::Depth,
7743 ) -> fidl::Result<()> {
7744 decoder.debug_check_bounds::<Self>(offset);
7745 fidl::decode!(
7747 fidl::encoding::Optional<
7748 fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<NetworkMarker>>,
7749 >,
7750 fidl::encoding::DefaultFuchsiaResourceDialect,
7751 &mut self.net,
7752 decoder,
7753 offset + 0,
7754 _depth
7755 )?;
7756 Ok(())
7757 }
7758 }
7759}