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_power_battery_test__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
15pub struct BatterySimulatorMarker;
16
17impl fidl::endpoints::ProtocolMarker for BatterySimulatorMarker {
18 type Proxy = BatterySimulatorProxy;
19 type RequestStream = BatterySimulatorRequestStream;
20 #[cfg(target_os = "fuchsia")]
21 type SynchronousProxy = BatterySimulatorSynchronousProxy;
22
23 const DEBUG_NAME: &'static str = "fuchsia.power.battery.test.BatterySimulator";
24}
25impl fidl::endpoints::DiscoverableProtocolMarker for BatterySimulatorMarker {}
26
27pub trait BatterySimulatorProxyInterface: Send + Sync {
28 type GetBatteryInfoResponseFut: std::future::Future<Output = Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error>>
29 + Send;
30 fn r#get_battery_info(&self) -> Self::GetBatteryInfoResponseFut;
31 fn r#set_battery_status(
32 &self,
33 battery_status: fidl_fuchsia_power_battery::BatteryStatus,
34 ) -> Result<(), fidl::Error>;
35 fn r#set_charge_status(
36 &self,
37 charge_status: fidl_fuchsia_power_battery::ChargeStatus,
38 ) -> Result<(), fidl::Error>;
39 fn r#set_charge_source(
40 &self,
41 charge_source: fidl_fuchsia_power_battery::ChargeSource,
42 ) -> Result<(), fidl::Error>;
43 fn r#set_battery_percentage(&self, percent: f32) -> Result<(), fidl::Error>;
44 fn r#set_level_status(
45 &self,
46 level_status: fidl_fuchsia_power_battery::LevelStatus,
47 ) -> Result<(), fidl::Error>;
48 fn r#set_time_remaining(&self, duration: i64) -> Result<(), fidl::Error>;
49 fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error>;
50 type IsSimulatingResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
51 fn r#is_simulating(&self) -> Self::IsSimulatingResponseFut;
52 fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error>;
53 fn r#set_present_voltage_mv(&self, voltage: u32) -> Result<(), fidl::Error>;
54 fn r#set_remaining_charge_uah(&self, charge: u32) -> Result<(), fidl::Error>;
55 fn r#set_battery_spec(
56 &self,
57 spec: &fidl_fuchsia_power_battery::BatterySpec,
58 ) -> Result<(), fidl::Error>;
59}
60#[derive(Debug)]
61#[cfg(target_os = "fuchsia")]
62pub struct BatterySimulatorSynchronousProxy {
63 client: fidl::client::sync::Client,
64}
65
66#[cfg(target_os = "fuchsia")]
67impl fidl::endpoints::SynchronousProxy for BatterySimulatorSynchronousProxy {
68 type Proxy = BatterySimulatorProxy;
69 type Protocol = BatterySimulatorMarker;
70
71 fn from_channel(inner: fidl::Channel) -> Self {
72 Self::new(inner)
73 }
74
75 fn into_channel(self) -> fidl::Channel {
76 self.client.into_channel()
77 }
78
79 fn as_channel(&self) -> &fidl::Channel {
80 self.client.as_channel()
81 }
82}
83
84#[cfg(target_os = "fuchsia")]
85impl BatterySimulatorSynchronousProxy {
86 pub fn new(channel: fidl::Channel) -> Self {
87 Self { client: fidl::client::sync::Client::new(channel) }
88 }
89
90 pub fn into_channel(self) -> fidl::Channel {
91 self.client.into_channel()
92 }
93
94 pub fn wait_for_event(
97 &self,
98 deadline: zx::MonotonicInstant,
99 ) -> Result<BatterySimulatorEvent, fidl::Error> {
100 BatterySimulatorEvent::decode(
101 self.client.wait_for_event::<BatterySimulatorMarker>(deadline)?,
102 )
103 }
104
105 pub fn r#get_battery_info(
108 &self,
109 ___deadline: zx::MonotonicInstant,
110 ) -> Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error> {
111 let _response = self.client.send_query::<
112 fidl::encoding::EmptyPayload,
113 BatterySimulatorControllerGetBatteryInfoResponse,
114 BatterySimulatorMarker,
115 >(
116 (),
117 0x4a20d3731366aaf8,
118 fidl::encoding::DynamicFlags::empty(),
119 ___deadline,
120 )?;
121 Ok(_response.info)
122 }
123
124 pub fn r#set_battery_status(
127 &self,
128 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
129 ) -> Result<(), fidl::Error> {
130 self.client.send::<BatterySimulatorControllerSetBatteryStatusRequest>(
131 (battery_status,),
132 0x2343eb65038c8b34,
133 fidl::encoding::DynamicFlags::empty(),
134 )
135 }
136
137 pub fn r#set_charge_status(
140 &self,
141 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
142 ) -> Result<(), fidl::Error> {
143 self.client.send::<BatterySimulatorControllerSetChargeStatusRequest>(
144 (charge_status,),
145 0x79b2bf1a387acd85,
146 fidl::encoding::DynamicFlags::empty(),
147 )
148 }
149
150 pub fn r#set_charge_source(
153 &self,
154 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
155 ) -> Result<(), fidl::Error> {
156 self.client.send::<BatterySimulatorControllerSetChargeSourceRequest>(
157 (charge_source,),
158 0xb40433f42c33527,
159 fidl::encoding::DynamicFlags::empty(),
160 )
161 }
162
163 pub fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
166 self.client.send::<BatterySimulatorControllerSetBatteryPercentageRequest>(
167 (percent,),
168 0x64a9d96eb7a45a9f,
169 fidl::encoding::DynamicFlags::empty(),
170 )
171 }
172
173 pub fn r#set_level_status(
176 &self,
177 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
178 ) -> Result<(), fidl::Error> {
179 self.client.send::<BatterySimulatorControllerSetLevelStatusRequest>(
180 (level_status,),
181 0x577fc3314f7a48a4,
182 fidl::encoding::DynamicFlags::empty(),
183 )
184 }
185
186 pub fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
189 self.client.send::<BatterySimulatorControllerSetTimeRemainingRequest>(
190 (duration,),
191 0x7427251c9d2a794e,
192 fidl::encoding::DynamicFlags::empty(),
193 )
194 }
195
196 pub fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
198 self.client.send::<fidl::encoding::EmptyPayload>(
199 (),
200 0x75588eae6b9b67e3,
201 fidl::encoding::DynamicFlags::empty(),
202 )
203 }
204
205 pub fn r#is_simulating(&self, ___deadline: zx::MonotonicInstant) -> Result<bool, fidl::Error> {
207 let _response = self.client.send_query::<
208 fidl::encoding::EmptyPayload,
209 BatterySimulatorControllerIsSimulatingResponse,
210 BatterySimulatorMarker,
211 >(
212 (),
213 0x4bf85cfe3476975d,
214 fidl::encoding::DynamicFlags::empty(),
215 ___deadline,
216 )?;
217 Ok(_response.simulation_state)
218 }
219
220 pub fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
223 self.client.send::<fidl::encoding::EmptyPayload>(
224 (),
225 0x18306690352d9dfa,
226 fidl::encoding::DynamicFlags::empty(),
227 )
228 }
229
230 pub fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
233 self.client.send::<BatterySimulatorControllerSetPresentVoltageMvRequest>(
234 (voltage,),
235 0x5462c9e9f947b8ce,
236 fidl::encoding::DynamicFlags::empty(),
237 )
238 }
239
240 pub fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
243 self.client.send::<BatterySimulatorControllerSetRemainingChargeUahRequest>(
244 (charge,),
245 0x54aa3c318fac5c33,
246 fidl::encoding::DynamicFlags::empty(),
247 )
248 }
249
250 pub fn r#set_battery_spec(
252 &self,
253 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
254 ) -> Result<(), fidl::Error> {
255 self.client.send::<BatterySimulatorControllerSetBatterySpecRequest>(
256 (spec,),
257 0x7324672546976583,
258 fidl::encoding::DynamicFlags::empty(),
259 )
260 }
261}
262
263#[cfg(target_os = "fuchsia")]
264impl From<BatterySimulatorSynchronousProxy> for zx::NullableHandle {
265 fn from(value: BatterySimulatorSynchronousProxy) -> Self {
266 value.into_channel().into()
267 }
268}
269
270#[cfg(target_os = "fuchsia")]
271impl From<fidl::Channel> for BatterySimulatorSynchronousProxy {
272 fn from(value: fidl::Channel) -> Self {
273 Self::new(value)
274 }
275}
276
277#[cfg(target_os = "fuchsia")]
278impl fidl::endpoints::FromClient for BatterySimulatorSynchronousProxy {
279 type Protocol = BatterySimulatorMarker;
280
281 fn from_client(value: fidl::endpoints::ClientEnd<BatterySimulatorMarker>) -> Self {
282 Self::new(value.into_channel())
283 }
284}
285
286#[derive(Debug, Clone)]
287pub struct BatterySimulatorProxy {
288 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
289}
290
291impl fidl::endpoints::Proxy for BatterySimulatorProxy {
292 type Protocol = BatterySimulatorMarker;
293
294 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
295 Self::new(inner)
296 }
297
298 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
299 self.client.into_channel().map_err(|client| Self { client })
300 }
301
302 fn as_channel(&self) -> &::fidl::AsyncChannel {
303 self.client.as_channel()
304 }
305}
306
307impl BatterySimulatorProxy {
308 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
310 let protocol_name = <BatterySimulatorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
311 Self { client: fidl::client::Client::new(channel, protocol_name) }
312 }
313
314 pub fn take_event_stream(&self) -> BatterySimulatorEventStream {
320 BatterySimulatorEventStream { event_receiver: self.client.take_event_receiver() }
321 }
322
323 pub fn r#get_battery_info(
326 &self,
327 ) -> fidl::client::QueryResponseFut<
328 fidl_fuchsia_power_battery::BatteryInfo,
329 fidl::encoding::DefaultFuchsiaResourceDialect,
330 > {
331 BatterySimulatorProxyInterface::r#get_battery_info(self)
332 }
333
334 pub fn r#set_battery_status(
337 &self,
338 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
339 ) -> Result<(), fidl::Error> {
340 BatterySimulatorProxyInterface::r#set_battery_status(self, battery_status)
341 }
342
343 pub fn r#set_charge_status(
346 &self,
347 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
348 ) -> Result<(), fidl::Error> {
349 BatterySimulatorProxyInterface::r#set_charge_status(self, charge_status)
350 }
351
352 pub fn r#set_charge_source(
355 &self,
356 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
357 ) -> Result<(), fidl::Error> {
358 BatterySimulatorProxyInterface::r#set_charge_source(self, charge_source)
359 }
360
361 pub fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
364 BatterySimulatorProxyInterface::r#set_battery_percentage(self, percent)
365 }
366
367 pub fn r#set_level_status(
370 &self,
371 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
372 ) -> Result<(), fidl::Error> {
373 BatterySimulatorProxyInterface::r#set_level_status(self, level_status)
374 }
375
376 pub fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
379 BatterySimulatorProxyInterface::r#set_time_remaining(self, duration)
380 }
381
382 pub fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
384 BatterySimulatorProxyInterface::r#disconnect_real_battery(self)
385 }
386
387 pub fn r#is_simulating(
389 &self,
390 ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
391 BatterySimulatorProxyInterface::r#is_simulating(self)
392 }
393
394 pub fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
397 BatterySimulatorProxyInterface::r#reconnect_real_battery(self)
398 }
399
400 pub fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
403 BatterySimulatorProxyInterface::r#set_present_voltage_mv(self, voltage)
404 }
405
406 pub fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
409 BatterySimulatorProxyInterface::r#set_remaining_charge_uah(self, charge)
410 }
411
412 pub fn r#set_battery_spec(
414 &self,
415 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
416 ) -> Result<(), fidl::Error> {
417 BatterySimulatorProxyInterface::r#set_battery_spec(self, spec)
418 }
419}
420
421impl BatterySimulatorProxyInterface for BatterySimulatorProxy {
422 type GetBatteryInfoResponseFut = fidl::client::QueryResponseFut<
423 fidl_fuchsia_power_battery::BatteryInfo,
424 fidl::encoding::DefaultFuchsiaResourceDialect,
425 >;
426 fn r#get_battery_info(&self) -> Self::GetBatteryInfoResponseFut {
427 fn _decode(
428 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
429 ) -> Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error> {
430 let _response = fidl::client::decode_transaction_body::<
431 BatterySimulatorControllerGetBatteryInfoResponse,
432 fidl::encoding::DefaultFuchsiaResourceDialect,
433 0x4a20d3731366aaf8,
434 >(_buf?)?;
435 Ok(_response.info)
436 }
437 self.client.send_query_and_decode::<
438 fidl::encoding::EmptyPayload,
439 fidl_fuchsia_power_battery::BatteryInfo,
440 >(
441 (),
442 0x4a20d3731366aaf8,
443 fidl::encoding::DynamicFlags::empty(),
444 _decode,
445 )
446 }
447
448 fn r#set_battery_status(
449 &self,
450 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
451 ) -> Result<(), fidl::Error> {
452 self.client.send::<BatterySimulatorControllerSetBatteryStatusRequest>(
453 (battery_status,),
454 0x2343eb65038c8b34,
455 fidl::encoding::DynamicFlags::empty(),
456 )
457 }
458
459 fn r#set_charge_status(
460 &self,
461 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
462 ) -> Result<(), fidl::Error> {
463 self.client.send::<BatterySimulatorControllerSetChargeStatusRequest>(
464 (charge_status,),
465 0x79b2bf1a387acd85,
466 fidl::encoding::DynamicFlags::empty(),
467 )
468 }
469
470 fn r#set_charge_source(
471 &self,
472 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
473 ) -> Result<(), fidl::Error> {
474 self.client.send::<BatterySimulatorControllerSetChargeSourceRequest>(
475 (charge_source,),
476 0xb40433f42c33527,
477 fidl::encoding::DynamicFlags::empty(),
478 )
479 }
480
481 fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
482 self.client.send::<BatterySimulatorControllerSetBatteryPercentageRequest>(
483 (percent,),
484 0x64a9d96eb7a45a9f,
485 fidl::encoding::DynamicFlags::empty(),
486 )
487 }
488
489 fn r#set_level_status(
490 &self,
491 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
492 ) -> Result<(), fidl::Error> {
493 self.client.send::<BatterySimulatorControllerSetLevelStatusRequest>(
494 (level_status,),
495 0x577fc3314f7a48a4,
496 fidl::encoding::DynamicFlags::empty(),
497 )
498 }
499
500 fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
501 self.client.send::<BatterySimulatorControllerSetTimeRemainingRequest>(
502 (duration,),
503 0x7427251c9d2a794e,
504 fidl::encoding::DynamicFlags::empty(),
505 )
506 }
507
508 fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
509 self.client.send::<fidl::encoding::EmptyPayload>(
510 (),
511 0x75588eae6b9b67e3,
512 fidl::encoding::DynamicFlags::empty(),
513 )
514 }
515
516 type IsSimulatingResponseFut =
517 fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
518 fn r#is_simulating(&self) -> Self::IsSimulatingResponseFut {
519 fn _decode(
520 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
521 ) -> Result<bool, fidl::Error> {
522 let _response = fidl::client::decode_transaction_body::<
523 BatterySimulatorControllerIsSimulatingResponse,
524 fidl::encoding::DefaultFuchsiaResourceDialect,
525 0x4bf85cfe3476975d,
526 >(_buf?)?;
527 Ok(_response.simulation_state)
528 }
529 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, bool>(
530 (),
531 0x4bf85cfe3476975d,
532 fidl::encoding::DynamicFlags::empty(),
533 _decode,
534 )
535 }
536
537 fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
538 self.client.send::<fidl::encoding::EmptyPayload>(
539 (),
540 0x18306690352d9dfa,
541 fidl::encoding::DynamicFlags::empty(),
542 )
543 }
544
545 fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
546 self.client.send::<BatterySimulatorControllerSetPresentVoltageMvRequest>(
547 (voltage,),
548 0x5462c9e9f947b8ce,
549 fidl::encoding::DynamicFlags::empty(),
550 )
551 }
552
553 fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
554 self.client.send::<BatterySimulatorControllerSetRemainingChargeUahRequest>(
555 (charge,),
556 0x54aa3c318fac5c33,
557 fidl::encoding::DynamicFlags::empty(),
558 )
559 }
560
561 fn r#set_battery_spec(
562 &self,
563 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
564 ) -> Result<(), fidl::Error> {
565 self.client.send::<BatterySimulatorControllerSetBatterySpecRequest>(
566 (spec,),
567 0x7324672546976583,
568 fidl::encoding::DynamicFlags::empty(),
569 )
570 }
571}
572
573pub struct BatterySimulatorEventStream {
574 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
575}
576
577impl std::marker::Unpin for BatterySimulatorEventStream {}
578
579impl futures::stream::FusedStream for BatterySimulatorEventStream {
580 fn is_terminated(&self) -> bool {
581 self.event_receiver.is_terminated()
582 }
583}
584
585impl futures::Stream for BatterySimulatorEventStream {
586 type Item = Result<BatterySimulatorEvent, fidl::Error>;
587
588 fn poll_next(
589 mut self: std::pin::Pin<&mut Self>,
590 cx: &mut std::task::Context<'_>,
591 ) -> std::task::Poll<Option<Self::Item>> {
592 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
593 &mut self.event_receiver,
594 cx
595 )?) {
596 Some(buf) => std::task::Poll::Ready(Some(BatterySimulatorEvent::decode(buf))),
597 None => std::task::Poll::Ready(None),
598 }
599 }
600}
601
602#[derive(Debug)]
603pub enum BatterySimulatorEvent {}
604
605impl BatterySimulatorEvent {
606 fn decode(
608 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
609 ) -> Result<BatterySimulatorEvent, fidl::Error> {
610 let (bytes, _handles) = buf.split_mut();
611 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
612 debug_assert_eq!(tx_header.tx_id, 0);
613 match tx_header.ordinal {
614 _ => Err(fidl::Error::UnknownOrdinal {
615 ordinal: tx_header.ordinal,
616 protocol_name:
617 <BatterySimulatorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
618 }),
619 }
620 }
621}
622
623pub struct BatterySimulatorRequestStream {
625 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
626 is_terminated: bool,
627}
628
629impl std::marker::Unpin for BatterySimulatorRequestStream {}
630
631impl futures::stream::FusedStream for BatterySimulatorRequestStream {
632 fn is_terminated(&self) -> bool {
633 self.is_terminated
634 }
635}
636
637impl fidl::endpoints::RequestStream for BatterySimulatorRequestStream {
638 type Protocol = BatterySimulatorMarker;
639 type ControlHandle = BatterySimulatorControlHandle;
640
641 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
642 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
643 }
644
645 fn control_handle(&self) -> Self::ControlHandle {
646 BatterySimulatorControlHandle { inner: self.inner.clone() }
647 }
648
649 fn into_inner(
650 self,
651 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
652 {
653 (self.inner, self.is_terminated)
654 }
655
656 fn from_inner(
657 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
658 is_terminated: bool,
659 ) -> Self {
660 Self { inner, is_terminated }
661 }
662}
663
664impl futures::Stream for BatterySimulatorRequestStream {
665 type Item = Result<BatterySimulatorRequest, fidl::Error>;
666
667 fn poll_next(
668 mut self: std::pin::Pin<&mut Self>,
669 cx: &mut std::task::Context<'_>,
670 ) -> std::task::Poll<Option<Self::Item>> {
671 let this = &mut *self;
672 if this.inner.check_shutdown(cx) {
673 this.is_terminated = true;
674 return std::task::Poll::Ready(None);
675 }
676 if this.is_terminated {
677 panic!("polled BatterySimulatorRequestStream after completion");
678 }
679 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
680 |bytes, handles| {
681 match this.inner.channel().read_etc(cx, bytes, handles) {
682 std::task::Poll::Ready(Ok(())) => {}
683 std::task::Poll::Pending => return std::task::Poll::Pending,
684 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
685 this.is_terminated = true;
686 return std::task::Poll::Ready(None);
687 }
688 std::task::Poll::Ready(Err(e)) => {
689 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
690 e.into(),
691 ))));
692 }
693 }
694
695 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
697
698 std::task::Poll::Ready(Some(match header.ordinal {
699 0x4a20d3731366aaf8 => {
700 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
701 let mut req = fidl::new_empty!(
702 fidl::encoding::EmptyPayload,
703 fidl::encoding::DefaultFuchsiaResourceDialect
704 );
705 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
706 let control_handle =
707 BatterySimulatorControlHandle { inner: this.inner.clone() };
708 Ok(BatterySimulatorRequest::GetBatteryInfo {
709 responder: BatterySimulatorGetBatteryInfoResponder {
710 control_handle: std::mem::ManuallyDrop::new(control_handle),
711 tx_id: header.tx_id,
712 },
713 })
714 }
715 0x2343eb65038c8b34 => {
716 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
717 let mut req = fidl::new_empty!(
718 BatterySimulatorControllerSetBatteryStatusRequest,
719 fidl::encoding::DefaultFuchsiaResourceDialect
720 );
721 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatteryStatusRequest>(&header, _body_bytes, handles, &mut req)?;
722 let control_handle =
723 BatterySimulatorControlHandle { inner: this.inner.clone() };
724 Ok(BatterySimulatorRequest::SetBatteryStatus {
725 battery_status: req.battery_status,
726
727 control_handle,
728 })
729 }
730 0x79b2bf1a387acd85 => {
731 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
732 let mut req = fidl::new_empty!(
733 BatterySimulatorControllerSetChargeStatusRequest,
734 fidl::encoding::DefaultFuchsiaResourceDialect
735 );
736 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetChargeStatusRequest>(&header, _body_bytes, handles, &mut req)?;
737 let control_handle =
738 BatterySimulatorControlHandle { inner: this.inner.clone() };
739 Ok(BatterySimulatorRequest::SetChargeStatus {
740 charge_status: req.charge_status,
741
742 control_handle,
743 })
744 }
745 0xb40433f42c33527 => {
746 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
747 let mut req = fidl::new_empty!(
748 BatterySimulatorControllerSetChargeSourceRequest,
749 fidl::encoding::DefaultFuchsiaResourceDialect
750 );
751 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetChargeSourceRequest>(&header, _body_bytes, handles, &mut req)?;
752 let control_handle =
753 BatterySimulatorControlHandle { inner: this.inner.clone() };
754 Ok(BatterySimulatorRequest::SetChargeSource {
755 charge_source: req.charge_source,
756
757 control_handle,
758 })
759 }
760 0x64a9d96eb7a45a9f => {
761 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
762 let mut req = fidl::new_empty!(
763 BatterySimulatorControllerSetBatteryPercentageRequest,
764 fidl::encoding::DefaultFuchsiaResourceDialect
765 );
766 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatteryPercentageRequest>(&header, _body_bytes, handles, &mut req)?;
767 let control_handle =
768 BatterySimulatorControlHandle { inner: this.inner.clone() };
769 Ok(BatterySimulatorRequest::SetBatteryPercentage {
770 percent: req.percent,
771
772 control_handle,
773 })
774 }
775 0x577fc3314f7a48a4 => {
776 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
777 let mut req = fidl::new_empty!(
778 BatterySimulatorControllerSetLevelStatusRequest,
779 fidl::encoding::DefaultFuchsiaResourceDialect
780 );
781 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetLevelStatusRequest>(&header, _body_bytes, handles, &mut req)?;
782 let control_handle =
783 BatterySimulatorControlHandle { inner: this.inner.clone() };
784 Ok(BatterySimulatorRequest::SetLevelStatus {
785 level_status: req.level_status,
786
787 control_handle,
788 })
789 }
790 0x7427251c9d2a794e => {
791 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
792 let mut req = fidl::new_empty!(
793 BatterySimulatorControllerSetTimeRemainingRequest,
794 fidl::encoding::DefaultFuchsiaResourceDialect
795 );
796 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetTimeRemainingRequest>(&header, _body_bytes, handles, &mut req)?;
797 let control_handle =
798 BatterySimulatorControlHandle { inner: this.inner.clone() };
799 Ok(BatterySimulatorRequest::SetTimeRemaining {
800 duration: req.duration,
801
802 control_handle,
803 })
804 }
805 0x75588eae6b9b67e3 => {
806 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
807 let mut req = fidl::new_empty!(
808 fidl::encoding::EmptyPayload,
809 fidl::encoding::DefaultFuchsiaResourceDialect
810 );
811 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
812 let control_handle =
813 BatterySimulatorControlHandle { inner: this.inner.clone() };
814 Ok(BatterySimulatorRequest::DisconnectRealBattery { control_handle })
815 }
816 0x4bf85cfe3476975d => {
817 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
818 let mut req = fidl::new_empty!(
819 fidl::encoding::EmptyPayload,
820 fidl::encoding::DefaultFuchsiaResourceDialect
821 );
822 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
823 let control_handle =
824 BatterySimulatorControlHandle { inner: this.inner.clone() };
825 Ok(BatterySimulatorRequest::IsSimulating {
826 responder: BatterySimulatorIsSimulatingResponder {
827 control_handle: std::mem::ManuallyDrop::new(control_handle),
828 tx_id: header.tx_id,
829 },
830 })
831 }
832 0x18306690352d9dfa => {
833 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
834 let mut req = fidl::new_empty!(
835 fidl::encoding::EmptyPayload,
836 fidl::encoding::DefaultFuchsiaResourceDialect
837 );
838 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
839 let control_handle =
840 BatterySimulatorControlHandle { inner: this.inner.clone() };
841 Ok(BatterySimulatorRequest::ReconnectRealBattery { control_handle })
842 }
843 0x5462c9e9f947b8ce => {
844 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
845 let mut req = fidl::new_empty!(
846 BatterySimulatorControllerSetPresentVoltageMvRequest,
847 fidl::encoding::DefaultFuchsiaResourceDialect
848 );
849 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetPresentVoltageMvRequest>(&header, _body_bytes, handles, &mut req)?;
850 let control_handle =
851 BatterySimulatorControlHandle { inner: this.inner.clone() };
852 Ok(BatterySimulatorRequest::SetPresentVoltageMv {
853 voltage: req.voltage,
854
855 control_handle,
856 })
857 }
858 0x54aa3c318fac5c33 => {
859 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
860 let mut req = fidl::new_empty!(
861 BatterySimulatorControllerSetRemainingChargeUahRequest,
862 fidl::encoding::DefaultFuchsiaResourceDialect
863 );
864 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetRemainingChargeUahRequest>(&header, _body_bytes, handles, &mut req)?;
865 let control_handle =
866 BatterySimulatorControlHandle { inner: this.inner.clone() };
867 Ok(BatterySimulatorRequest::SetRemainingChargeUah {
868 charge: req.charge,
869
870 control_handle,
871 })
872 }
873 0x7324672546976583 => {
874 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
875 let mut req = fidl::new_empty!(
876 BatterySimulatorControllerSetBatterySpecRequest,
877 fidl::encoding::DefaultFuchsiaResourceDialect
878 );
879 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatterySpecRequest>(&header, _body_bytes, handles, &mut req)?;
880 let control_handle =
881 BatterySimulatorControlHandle { inner: this.inner.clone() };
882 Ok(BatterySimulatorRequest::SetBatterySpec {
883 spec: req.spec,
884
885 control_handle,
886 })
887 }
888 _ => Err(fidl::Error::UnknownOrdinal {
889 ordinal: header.ordinal,
890 protocol_name:
891 <BatterySimulatorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
892 }),
893 }))
894 },
895 )
896 }
897}
898
899#[derive(Debug)]
901pub enum BatterySimulatorRequest {
902 GetBatteryInfo { responder: BatterySimulatorGetBatteryInfoResponder },
905 SetBatteryStatus {
908 battery_status: fidl_fuchsia_power_battery::BatteryStatus,
909 control_handle: BatterySimulatorControlHandle,
910 },
911 SetChargeStatus {
914 charge_status: fidl_fuchsia_power_battery::ChargeStatus,
915 control_handle: BatterySimulatorControlHandle,
916 },
917 SetChargeSource {
920 charge_source: fidl_fuchsia_power_battery::ChargeSource,
921 control_handle: BatterySimulatorControlHandle,
922 },
923 SetBatteryPercentage { percent: f32, control_handle: BatterySimulatorControlHandle },
926 SetLevelStatus {
929 level_status: fidl_fuchsia_power_battery::LevelStatus,
930 control_handle: BatterySimulatorControlHandle,
931 },
932 SetTimeRemaining { duration: i64, control_handle: BatterySimulatorControlHandle },
935 DisconnectRealBattery { control_handle: BatterySimulatorControlHandle },
937 IsSimulating { responder: BatterySimulatorIsSimulatingResponder },
939 ReconnectRealBattery { control_handle: BatterySimulatorControlHandle },
942 SetPresentVoltageMv { voltage: u32, control_handle: BatterySimulatorControlHandle },
945 SetRemainingChargeUah { charge: u32, control_handle: BatterySimulatorControlHandle },
948 SetBatterySpec {
950 spec: fidl_fuchsia_power_battery::BatterySpec,
951 control_handle: BatterySimulatorControlHandle,
952 },
953}
954
955impl BatterySimulatorRequest {
956 #[allow(irrefutable_let_patterns)]
957 pub fn into_get_battery_info(self) -> Option<(BatterySimulatorGetBatteryInfoResponder)> {
958 if let BatterySimulatorRequest::GetBatteryInfo { responder } = self {
959 Some((responder))
960 } else {
961 None
962 }
963 }
964
965 #[allow(irrefutable_let_patterns)]
966 pub fn into_set_battery_status(
967 self,
968 ) -> Option<(fidl_fuchsia_power_battery::BatteryStatus, BatterySimulatorControlHandle)> {
969 if let BatterySimulatorRequest::SetBatteryStatus { battery_status, control_handle } = self {
970 Some((battery_status, control_handle))
971 } else {
972 None
973 }
974 }
975
976 #[allow(irrefutable_let_patterns)]
977 pub fn into_set_charge_status(
978 self,
979 ) -> Option<(fidl_fuchsia_power_battery::ChargeStatus, BatterySimulatorControlHandle)> {
980 if let BatterySimulatorRequest::SetChargeStatus { charge_status, control_handle } = self {
981 Some((charge_status, control_handle))
982 } else {
983 None
984 }
985 }
986
987 #[allow(irrefutable_let_patterns)]
988 pub fn into_set_charge_source(
989 self,
990 ) -> Option<(fidl_fuchsia_power_battery::ChargeSource, BatterySimulatorControlHandle)> {
991 if let BatterySimulatorRequest::SetChargeSource { charge_source, control_handle } = self {
992 Some((charge_source, control_handle))
993 } else {
994 None
995 }
996 }
997
998 #[allow(irrefutable_let_patterns)]
999 pub fn into_set_battery_percentage(self) -> Option<(f32, BatterySimulatorControlHandle)> {
1000 if let BatterySimulatorRequest::SetBatteryPercentage { percent, control_handle } = self {
1001 Some((percent, control_handle))
1002 } else {
1003 None
1004 }
1005 }
1006
1007 #[allow(irrefutable_let_patterns)]
1008 pub fn into_set_level_status(
1009 self,
1010 ) -> Option<(fidl_fuchsia_power_battery::LevelStatus, BatterySimulatorControlHandle)> {
1011 if let BatterySimulatorRequest::SetLevelStatus { level_status, control_handle } = self {
1012 Some((level_status, control_handle))
1013 } else {
1014 None
1015 }
1016 }
1017
1018 #[allow(irrefutable_let_patterns)]
1019 pub fn into_set_time_remaining(self) -> Option<(i64, BatterySimulatorControlHandle)> {
1020 if let BatterySimulatorRequest::SetTimeRemaining { duration, control_handle } = self {
1021 Some((duration, control_handle))
1022 } else {
1023 None
1024 }
1025 }
1026
1027 #[allow(irrefutable_let_patterns)]
1028 pub fn into_disconnect_real_battery(self) -> Option<(BatterySimulatorControlHandle)> {
1029 if let BatterySimulatorRequest::DisconnectRealBattery { control_handle } = self {
1030 Some((control_handle))
1031 } else {
1032 None
1033 }
1034 }
1035
1036 #[allow(irrefutable_let_patterns)]
1037 pub fn into_is_simulating(self) -> Option<(BatterySimulatorIsSimulatingResponder)> {
1038 if let BatterySimulatorRequest::IsSimulating { responder } = self {
1039 Some((responder))
1040 } else {
1041 None
1042 }
1043 }
1044
1045 #[allow(irrefutable_let_patterns)]
1046 pub fn into_reconnect_real_battery(self) -> Option<(BatterySimulatorControlHandle)> {
1047 if let BatterySimulatorRequest::ReconnectRealBattery { control_handle } = self {
1048 Some((control_handle))
1049 } else {
1050 None
1051 }
1052 }
1053
1054 #[allow(irrefutable_let_patterns)]
1055 pub fn into_set_present_voltage_mv(self) -> Option<(u32, BatterySimulatorControlHandle)> {
1056 if let BatterySimulatorRequest::SetPresentVoltageMv { voltage, control_handle } = self {
1057 Some((voltage, control_handle))
1058 } else {
1059 None
1060 }
1061 }
1062
1063 #[allow(irrefutable_let_patterns)]
1064 pub fn into_set_remaining_charge_uah(self) -> Option<(u32, BatterySimulatorControlHandle)> {
1065 if let BatterySimulatorRequest::SetRemainingChargeUah { charge, control_handle } = self {
1066 Some((charge, control_handle))
1067 } else {
1068 None
1069 }
1070 }
1071
1072 #[allow(irrefutable_let_patterns)]
1073 pub fn into_set_battery_spec(
1074 self,
1075 ) -> Option<(fidl_fuchsia_power_battery::BatterySpec, BatterySimulatorControlHandle)> {
1076 if let BatterySimulatorRequest::SetBatterySpec { spec, control_handle } = self {
1077 Some((spec, control_handle))
1078 } else {
1079 None
1080 }
1081 }
1082
1083 pub fn method_name(&self) -> &'static str {
1085 match *self {
1086 BatterySimulatorRequest::GetBatteryInfo { .. } => "get_battery_info",
1087 BatterySimulatorRequest::SetBatteryStatus { .. } => "set_battery_status",
1088 BatterySimulatorRequest::SetChargeStatus { .. } => "set_charge_status",
1089 BatterySimulatorRequest::SetChargeSource { .. } => "set_charge_source",
1090 BatterySimulatorRequest::SetBatteryPercentage { .. } => "set_battery_percentage",
1091 BatterySimulatorRequest::SetLevelStatus { .. } => "set_level_status",
1092 BatterySimulatorRequest::SetTimeRemaining { .. } => "set_time_remaining",
1093 BatterySimulatorRequest::DisconnectRealBattery { .. } => "disconnect_real_battery",
1094 BatterySimulatorRequest::IsSimulating { .. } => "is_simulating",
1095 BatterySimulatorRequest::ReconnectRealBattery { .. } => "reconnect_real_battery",
1096 BatterySimulatorRequest::SetPresentVoltageMv { .. } => "set_present_voltage_mv",
1097 BatterySimulatorRequest::SetRemainingChargeUah { .. } => "set_remaining_charge_uah",
1098 BatterySimulatorRequest::SetBatterySpec { .. } => "set_battery_spec",
1099 }
1100 }
1101}
1102
1103#[derive(Debug, Clone)]
1104pub struct BatterySimulatorControlHandle {
1105 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1106}
1107
1108impl fidl::endpoints::ControlHandle for BatterySimulatorControlHandle {
1109 fn shutdown(&self) {
1110 self.inner.shutdown()
1111 }
1112
1113 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
1114 self.inner.shutdown_with_epitaph(status)
1115 }
1116
1117 fn is_closed(&self) -> bool {
1118 self.inner.channel().is_closed()
1119 }
1120 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1121 self.inner.channel().on_closed()
1122 }
1123
1124 #[cfg(target_os = "fuchsia")]
1125 fn signal_peer(
1126 &self,
1127 clear_mask: zx::Signals,
1128 set_mask: zx::Signals,
1129 ) -> Result<(), zx_status::Status> {
1130 use fidl::Peered;
1131 self.inner.channel().signal_peer(clear_mask, set_mask)
1132 }
1133}
1134
1135impl BatterySimulatorControlHandle {}
1136
1137#[must_use = "FIDL methods require a response to be sent"]
1138#[derive(Debug)]
1139pub struct BatterySimulatorGetBatteryInfoResponder {
1140 control_handle: std::mem::ManuallyDrop<BatterySimulatorControlHandle>,
1141 tx_id: u32,
1142}
1143
1144impl std::ops::Drop for BatterySimulatorGetBatteryInfoResponder {
1148 fn drop(&mut self) {
1149 self.control_handle.shutdown();
1150 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1152 }
1153}
1154
1155impl fidl::endpoints::Responder for BatterySimulatorGetBatteryInfoResponder {
1156 type ControlHandle = BatterySimulatorControlHandle;
1157
1158 fn control_handle(&self) -> &BatterySimulatorControlHandle {
1159 &self.control_handle
1160 }
1161
1162 fn drop_without_shutdown(mut self) {
1163 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1165 std::mem::forget(self);
1167 }
1168}
1169
1170impl BatterySimulatorGetBatteryInfoResponder {
1171 pub fn send(
1175 self,
1176 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
1177 ) -> Result<(), fidl::Error> {
1178 let _result = self.send_raw(info);
1179 if _result.is_err() {
1180 self.control_handle.shutdown();
1181 }
1182 self.drop_without_shutdown();
1183 _result
1184 }
1185
1186 pub fn send_no_shutdown_on_err(
1188 self,
1189 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
1190 ) -> Result<(), fidl::Error> {
1191 let _result = self.send_raw(info);
1192 self.drop_without_shutdown();
1193 _result
1194 }
1195
1196 fn send_raw(
1197 &self,
1198 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
1199 ) -> Result<(), fidl::Error> {
1200 self.control_handle.inner.send::<BatterySimulatorControllerGetBatteryInfoResponse>(
1201 (info,),
1202 self.tx_id,
1203 0x4a20d3731366aaf8,
1204 fidl::encoding::DynamicFlags::empty(),
1205 )
1206 }
1207}
1208
1209#[must_use = "FIDL methods require a response to be sent"]
1210#[derive(Debug)]
1211pub struct BatterySimulatorIsSimulatingResponder {
1212 control_handle: std::mem::ManuallyDrop<BatterySimulatorControlHandle>,
1213 tx_id: u32,
1214}
1215
1216impl std::ops::Drop for BatterySimulatorIsSimulatingResponder {
1220 fn drop(&mut self) {
1221 self.control_handle.shutdown();
1222 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1224 }
1225}
1226
1227impl fidl::endpoints::Responder for BatterySimulatorIsSimulatingResponder {
1228 type ControlHandle = BatterySimulatorControlHandle;
1229
1230 fn control_handle(&self) -> &BatterySimulatorControlHandle {
1231 &self.control_handle
1232 }
1233
1234 fn drop_without_shutdown(mut self) {
1235 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1237 std::mem::forget(self);
1239 }
1240}
1241
1242impl BatterySimulatorIsSimulatingResponder {
1243 pub fn send(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
1247 let _result = self.send_raw(simulation_state);
1248 if _result.is_err() {
1249 self.control_handle.shutdown();
1250 }
1251 self.drop_without_shutdown();
1252 _result
1253 }
1254
1255 pub fn send_no_shutdown_on_err(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
1257 let _result = self.send_raw(simulation_state);
1258 self.drop_without_shutdown();
1259 _result
1260 }
1261
1262 fn send_raw(&self, mut simulation_state: bool) -> Result<(), fidl::Error> {
1263 self.control_handle.inner.send::<BatterySimulatorControllerIsSimulatingResponse>(
1264 (simulation_state,),
1265 self.tx_id,
1266 0x4bf85cfe3476975d,
1267 fidl::encoding::DynamicFlags::empty(),
1268 )
1269 }
1270}
1271
1272#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1273pub struct BatterySimulatorControllerMarker;
1274
1275impl fidl::endpoints::ProtocolMarker for BatterySimulatorControllerMarker {
1276 type Proxy = BatterySimulatorControllerProxy;
1277 type RequestStream = BatterySimulatorControllerRequestStream;
1278 #[cfg(target_os = "fuchsia")]
1279 type SynchronousProxy = BatterySimulatorControllerSynchronousProxy;
1280
1281 const DEBUG_NAME: &'static str = "(anonymous) BatterySimulatorController";
1282}
1283
1284pub trait BatterySimulatorControllerProxyInterface: Send + Sync {
1285 type GetBatteryInfoResponseFut: std::future::Future<Output = Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error>>
1286 + Send;
1287 fn r#get_battery_info(&self) -> Self::GetBatteryInfoResponseFut;
1288 fn r#set_battery_status(
1289 &self,
1290 battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1291 ) -> Result<(), fidl::Error>;
1292 fn r#set_charge_status(
1293 &self,
1294 charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1295 ) -> Result<(), fidl::Error>;
1296 fn r#set_charge_source(
1297 &self,
1298 charge_source: fidl_fuchsia_power_battery::ChargeSource,
1299 ) -> Result<(), fidl::Error>;
1300 fn r#set_battery_percentage(&self, percent: f32) -> Result<(), fidl::Error>;
1301 fn r#set_level_status(
1302 &self,
1303 level_status: fidl_fuchsia_power_battery::LevelStatus,
1304 ) -> Result<(), fidl::Error>;
1305 fn r#set_time_remaining(&self, duration: i64) -> Result<(), fidl::Error>;
1306 fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error>;
1307 type IsSimulatingResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
1308 fn r#is_simulating(&self) -> Self::IsSimulatingResponseFut;
1309 fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error>;
1310 fn r#set_present_voltage_mv(&self, voltage: u32) -> Result<(), fidl::Error>;
1311 fn r#set_remaining_charge_uah(&self, charge: u32) -> Result<(), fidl::Error>;
1312 fn r#set_battery_spec(
1313 &self,
1314 spec: &fidl_fuchsia_power_battery::BatterySpec,
1315 ) -> Result<(), fidl::Error>;
1316}
1317#[derive(Debug)]
1318#[cfg(target_os = "fuchsia")]
1319pub struct BatterySimulatorControllerSynchronousProxy {
1320 client: fidl::client::sync::Client,
1321}
1322
1323#[cfg(target_os = "fuchsia")]
1324impl fidl::endpoints::SynchronousProxy for BatterySimulatorControllerSynchronousProxy {
1325 type Proxy = BatterySimulatorControllerProxy;
1326 type Protocol = BatterySimulatorControllerMarker;
1327
1328 fn from_channel(inner: fidl::Channel) -> Self {
1329 Self::new(inner)
1330 }
1331
1332 fn into_channel(self) -> fidl::Channel {
1333 self.client.into_channel()
1334 }
1335
1336 fn as_channel(&self) -> &fidl::Channel {
1337 self.client.as_channel()
1338 }
1339}
1340
1341#[cfg(target_os = "fuchsia")]
1342impl BatterySimulatorControllerSynchronousProxy {
1343 pub fn new(channel: fidl::Channel) -> Self {
1344 Self { client: fidl::client::sync::Client::new(channel) }
1345 }
1346
1347 pub fn into_channel(self) -> fidl::Channel {
1348 self.client.into_channel()
1349 }
1350
1351 pub fn wait_for_event(
1354 &self,
1355 deadline: zx::MonotonicInstant,
1356 ) -> Result<BatterySimulatorControllerEvent, fidl::Error> {
1357 BatterySimulatorControllerEvent::decode(
1358 self.client.wait_for_event::<BatterySimulatorControllerMarker>(deadline)?,
1359 )
1360 }
1361
1362 pub fn r#get_battery_info(
1365 &self,
1366 ___deadline: zx::MonotonicInstant,
1367 ) -> Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error> {
1368 let _response = self.client.send_query::<
1369 fidl::encoding::EmptyPayload,
1370 BatterySimulatorControllerGetBatteryInfoResponse,
1371 BatterySimulatorControllerMarker,
1372 >(
1373 (),
1374 0x4a20d3731366aaf8,
1375 fidl::encoding::DynamicFlags::empty(),
1376 ___deadline,
1377 )?;
1378 Ok(_response.info)
1379 }
1380
1381 pub fn r#set_battery_status(
1384 &self,
1385 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1386 ) -> Result<(), fidl::Error> {
1387 self.client.send::<BatterySimulatorControllerSetBatteryStatusRequest>(
1388 (battery_status,),
1389 0x2343eb65038c8b34,
1390 fidl::encoding::DynamicFlags::empty(),
1391 )
1392 }
1393
1394 pub fn r#set_charge_status(
1397 &self,
1398 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1399 ) -> Result<(), fidl::Error> {
1400 self.client.send::<BatterySimulatorControllerSetChargeStatusRequest>(
1401 (charge_status,),
1402 0x79b2bf1a387acd85,
1403 fidl::encoding::DynamicFlags::empty(),
1404 )
1405 }
1406
1407 pub fn r#set_charge_source(
1410 &self,
1411 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
1412 ) -> Result<(), fidl::Error> {
1413 self.client.send::<BatterySimulatorControllerSetChargeSourceRequest>(
1414 (charge_source,),
1415 0xb40433f42c33527,
1416 fidl::encoding::DynamicFlags::empty(),
1417 )
1418 }
1419
1420 pub fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
1423 self.client.send::<BatterySimulatorControllerSetBatteryPercentageRequest>(
1424 (percent,),
1425 0x64a9d96eb7a45a9f,
1426 fidl::encoding::DynamicFlags::empty(),
1427 )
1428 }
1429
1430 pub fn r#set_level_status(
1433 &self,
1434 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
1435 ) -> Result<(), fidl::Error> {
1436 self.client.send::<BatterySimulatorControllerSetLevelStatusRequest>(
1437 (level_status,),
1438 0x577fc3314f7a48a4,
1439 fidl::encoding::DynamicFlags::empty(),
1440 )
1441 }
1442
1443 pub fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
1446 self.client.send::<BatterySimulatorControllerSetTimeRemainingRequest>(
1447 (duration,),
1448 0x7427251c9d2a794e,
1449 fidl::encoding::DynamicFlags::empty(),
1450 )
1451 }
1452
1453 pub fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
1455 self.client.send::<fidl::encoding::EmptyPayload>(
1456 (),
1457 0x75588eae6b9b67e3,
1458 fidl::encoding::DynamicFlags::empty(),
1459 )
1460 }
1461
1462 pub fn r#is_simulating(&self, ___deadline: zx::MonotonicInstant) -> Result<bool, fidl::Error> {
1464 let _response = self.client.send_query::<
1465 fidl::encoding::EmptyPayload,
1466 BatterySimulatorControllerIsSimulatingResponse,
1467 BatterySimulatorControllerMarker,
1468 >(
1469 (),
1470 0x4bf85cfe3476975d,
1471 fidl::encoding::DynamicFlags::empty(),
1472 ___deadline,
1473 )?;
1474 Ok(_response.simulation_state)
1475 }
1476
1477 pub fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
1480 self.client.send::<fidl::encoding::EmptyPayload>(
1481 (),
1482 0x18306690352d9dfa,
1483 fidl::encoding::DynamicFlags::empty(),
1484 )
1485 }
1486
1487 pub fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
1490 self.client.send::<BatterySimulatorControllerSetPresentVoltageMvRequest>(
1491 (voltage,),
1492 0x5462c9e9f947b8ce,
1493 fidl::encoding::DynamicFlags::empty(),
1494 )
1495 }
1496
1497 pub fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
1500 self.client.send::<BatterySimulatorControllerSetRemainingChargeUahRequest>(
1501 (charge,),
1502 0x54aa3c318fac5c33,
1503 fidl::encoding::DynamicFlags::empty(),
1504 )
1505 }
1506
1507 pub fn r#set_battery_spec(
1509 &self,
1510 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
1511 ) -> Result<(), fidl::Error> {
1512 self.client.send::<BatterySimulatorControllerSetBatterySpecRequest>(
1513 (spec,),
1514 0x7324672546976583,
1515 fidl::encoding::DynamicFlags::empty(),
1516 )
1517 }
1518}
1519
1520#[cfg(target_os = "fuchsia")]
1521impl From<BatterySimulatorControllerSynchronousProxy> for zx::NullableHandle {
1522 fn from(value: BatterySimulatorControllerSynchronousProxy) -> Self {
1523 value.into_channel().into()
1524 }
1525}
1526
1527#[cfg(target_os = "fuchsia")]
1528impl From<fidl::Channel> for BatterySimulatorControllerSynchronousProxy {
1529 fn from(value: fidl::Channel) -> Self {
1530 Self::new(value)
1531 }
1532}
1533
1534#[cfg(target_os = "fuchsia")]
1535impl fidl::endpoints::FromClient for BatterySimulatorControllerSynchronousProxy {
1536 type Protocol = BatterySimulatorControllerMarker;
1537
1538 fn from_client(value: fidl::endpoints::ClientEnd<BatterySimulatorControllerMarker>) -> Self {
1539 Self::new(value.into_channel())
1540 }
1541}
1542
1543#[derive(Debug, Clone)]
1544pub struct BatterySimulatorControllerProxy {
1545 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1546}
1547
1548impl fidl::endpoints::Proxy for BatterySimulatorControllerProxy {
1549 type Protocol = BatterySimulatorControllerMarker;
1550
1551 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1552 Self::new(inner)
1553 }
1554
1555 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1556 self.client.into_channel().map_err(|client| Self { client })
1557 }
1558
1559 fn as_channel(&self) -> &::fidl::AsyncChannel {
1560 self.client.as_channel()
1561 }
1562}
1563
1564impl BatterySimulatorControllerProxy {
1565 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1567 let protocol_name =
1568 <BatterySimulatorControllerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1569 Self { client: fidl::client::Client::new(channel, protocol_name) }
1570 }
1571
1572 pub fn take_event_stream(&self) -> BatterySimulatorControllerEventStream {
1578 BatterySimulatorControllerEventStream { event_receiver: self.client.take_event_receiver() }
1579 }
1580
1581 pub fn r#get_battery_info(
1584 &self,
1585 ) -> fidl::client::QueryResponseFut<
1586 fidl_fuchsia_power_battery::BatteryInfo,
1587 fidl::encoding::DefaultFuchsiaResourceDialect,
1588 > {
1589 BatterySimulatorControllerProxyInterface::r#get_battery_info(self)
1590 }
1591
1592 pub fn r#set_battery_status(
1595 &self,
1596 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1597 ) -> Result<(), fidl::Error> {
1598 BatterySimulatorControllerProxyInterface::r#set_battery_status(self, battery_status)
1599 }
1600
1601 pub fn r#set_charge_status(
1604 &self,
1605 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1606 ) -> Result<(), fidl::Error> {
1607 BatterySimulatorControllerProxyInterface::r#set_charge_status(self, charge_status)
1608 }
1609
1610 pub fn r#set_charge_source(
1613 &self,
1614 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
1615 ) -> Result<(), fidl::Error> {
1616 BatterySimulatorControllerProxyInterface::r#set_charge_source(self, charge_source)
1617 }
1618
1619 pub fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
1622 BatterySimulatorControllerProxyInterface::r#set_battery_percentage(self, percent)
1623 }
1624
1625 pub fn r#set_level_status(
1628 &self,
1629 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
1630 ) -> Result<(), fidl::Error> {
1631 BatterySimulatorControllerProxyInterface::r#set_level_status(self, level_status)
1632 }
1633
1634 pub fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
1637 BatterySimulatorControllerProxyInterface::r#set_time_remaining(self, duration)
1638 }
1639
1640 pub fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
1642 BatterySimulatorControllerProxyInterface::r#disconnect_real_battery(self)
1643 }
1644
1645 pub fn r#is_simulating(
1647 &self,
1648 ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
1649 BatterySimulatorControllerProxyInterface::r#is_simulating(self)
1650 }
1651
1652 pub fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
1655 BatterySimulatorControllerProxyInterface::r#reconnect_real_battery(self)
1656 }
1657
1658 pub fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
1661 BatterySimulatorControllerProxyInterface::r#set_present_voltage_mv(self, voltage)
1662 }
1663
1664 pub fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
1667 BatterySimulatorControllerProxyInterface::r#set_remaining_charge_uah(self, charge)
1668 }
1669
1670 pub fn r#set_battery_spec(
1672 &self,
1673 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
1674 ) -> Result<(), fidl::Error> {
1675 BatterySimulatorControllerProxyInterface::r#set_battery_spec(self, spec)
1676 }
1677}
1678
1679impl BatterySimulatorControllerProxyInterface for BatterySimulatorControllerProxy {
1680 type GetBatteryInfoResponseFut = fidl::client::QueryResponseFut<
1681 fidl_fuchsia_power_battery::BatteryInfo,
1682 fidl::encoding::DefaultFuchsiaResourceDialect,
1683 >;
1684 fn r#get_battery_info(&self) -> Self::GetBatteryInfoResponseFut {
1685 fn _decode(
1686 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1687 ) -> Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error> {
1688 let _response = fidl::client::decode_transaction_body::<
1689 BatterySimulatorControllerGetBatteryInfoResponse,
1690 fidl::encoding::DefaultFuchsiaResourceDialect,
1691 0x4a20d3731366aaf8,
1692 >(_buf?)?;
1693 Ok(_response.info)
1694 }
1695 self.client.send_query_and_decode::<
1696 fidl::encoding::EmptyPayload,
1697 fidl_fuchsia_power_battery::BatteryInfo,
1698 >(
1699 (),
1700 0x4a20d3731366aaf8,
1701 fidl::encoding::DynamicFlags::empty(),
1702 _decode,
1703 )
1704 }
1705
1706 fn r#set_battery_status(
1707 &self,
1708 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1709 ) -> Result<(), fidl::Error> {
1710 self.client.send::<BatterySimulatorControllerSetBatteryStatusRequest>(
1711 (battery_status,),
1712 0x2343eb65038c8b34,
1713 fidl::encoding::DynamicFlags::empty(),
1714 )
1715 }
1716
1717 fn r#set_charge_status(
1718 &self,
1719 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1720 ) -> Result<(), fidl::Error> {
1721 self.client.send::<BatterySimulatorControllerSetChargeStatusRequest>(
1722 (charge_status,),
1723 0x79b2bf1a387acd85,
1724 fidl::encoding::DynamicFlags::empty(),
1725 )
1726 }
1727
1728 fn r#set_charge_source(
1729 &self,
1730 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
1731 ) -> Result<(), fidl::Error> {
1732 self.client.send::<BatterySimulatorControllerSetChargeSourceRequest>(
1733 (charge_source,),
1734 0xb40433f42c33527,
1735 fidl::encoding::DynamicFlags::empty(),
1736 )
1737 }
1738
1739 fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
1740 self.client.send::<BatterySimulatorControllerSetBatteryPercentageRequest>(
1741 (percent,),
1742 0x64a9d96eb7a45a9f,
1743 fidl::encoding::DynamicFlags::empty(),
1744 )
1745 }
1746
1747 fn r#set_level_status(
1748 &self,
1749 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
1750 ) -> Result<(), fidl::Error> {
1751 self.client.send::<BatterySimulatorControllerSetLevelStatusRequest>(
1752 (level_status,),
1753 0x577fc3314f7a48a4,
1754 fidl::encoding::DynamicFlags::empty(),
1755 )
1756 }
1757
1758 fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
1759 self.client.send::<BatterySimulatorControllerSetTimeRemainingRequest>(
1760 (duration,),
1761 0x7427251c9d2a794e,
1762 fidl::encoding::DynamicFlags::empty(),
1763 )
1764 }
1765
1766 fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
1767 self.client.send::<fidl::encoding::EmptyPayload>(
1768 (),
1769 0x75588eae6b9b67e3,
1770 fidl::encoding::DynamicFlags::empty(),
1771 )
1772 }
1773
1774 type IsSimulatingResponseFut =
1775 fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
1776 fn r#is_simulating(&self) -> Self::IsSimulatingResponseFut {
1777 fn _decode(
1778 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1779 ) -> Result<bool, fidl::Error> {
1780 let _response = fidl::client::decode_transaction_body::<
1781 BatterySimulatorControllerIsSimulatingResponse,
1782 fidl::encoding::DefaultFuchsiaResourceDialect,
1783 0x4bf85cfe3476975d,
1784 >(_buf?)?;
1785 Ok(_response.simulation_state)
1786 }
1787 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, bool>(
1788 (),
1789 0x4bf85cfe3476975d,
1790 fidl::encoding::DynamicFlags::empty(),
1791 _decode,
1792 )
1793 }
1794
1795 fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
1796 self.client.send::<fidl::encoding::EmptyPayload>(
1797 (),
1798 0x18306690352d9dfa,
1799 fidl::encoding::DynamicFlags::empty(),
1800 )
1801 }
1802
1803 fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
1804 self.client.send::<BatterySimulatorControllerSetPresentVoltageMvRequest>(
1805 (voltage,),
1806 0x5462c9e9f947b8ce,
1807 fidl::encoding::DynamicFlags::empty(),
1808 )
1809 }
1810
1811 fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
1812 self.client.send::<BatterySimulatorControllerSetRemainingChargeUahRequest>(
1813 (charge,),
1814 0x54aa3c318fac5c33,
1815 fidl::encoding::DynamicFlags::empty(),
1816 )
1817 }
1818
1819 fn r#set_battery_spec(
1820 &self,
1821 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
1822 ) -> Result<(), fidl::Error> {
1823 self.client.send::<BatterySimulatorControllerSetBatterySpecRequest>(
1824 (spec,),
1825 0x7324672546976583,
1826 fidl::encoding::DynamicFlags::empty(),
1827 )
1828 }
1829}
1830
1831pub struct BatterySimulatorControllerEventStream {
1832 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1833}
1834
1835impl std::marker::Unpin for BatterySimulatorControllerEventStream {}
1836
1837impl futures::stream::FusedStream for BatterySimulatorControllerEventStream {
1838 fn is_terminated(&self) -> bool {
1839 self.event_receiver.is_terminated()
1840 }
1841}
1842
1843impl futures::Stream for BatterySimulatorControllerEventStream {
1844 type Item = Result<BatterySimulatorControllerEvent, fidl::Error>;
1845
1846 fn poll_next(
1847 mut self: std::pin::Pin<&mut Self>,
1848 cx: &mut std::task::Context<'_>,
1849 ) -> std::task::Poll<Option<Self::Item>> {
1850 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1851 &mut self.event_receiver,
1852 cx
1853 )?) {
1854 Some(buf) => std::task::Poll::Ready(Some(BatterySimulatorControllerEvent::decode(buf))),
1855 None => std::task::Poll::Ready(None),
1856 }
1857 }
1858}
1859
1860#[derive(Debug)]
1861pub enum BatterySimulatorControllerEvent {}
1862
1863impl BatterySimulatorControllerEvent {
1864 fn decode(
1866 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1867 ) -> Result<BatterySimulatorControllerEvent, fidl::Error> {
1868 let (bytes, _handles) = buf.split_mut();
1869 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1870 debug_assert_eq!(tx_header.tx_id, 0);
1871 match tx_header.ordinal {
1872 _ => Err(fidl::Error::UnknownOrdinal {
1873 ordinal: tx_header.ordinal,
1874 protocol_name: <BatterySimulatorControllerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1875 })
1876 }
1877 }
1878}
1879
1880pub struct BatterySimulatorControllerRequestStream {
1882 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1883 is_terminated: bool,
1884}
1885
1886impl std::marker::Unpin for BatterySimulatorControllerRequestStream {}
1887
1888impl futures::stream::FusedStream for BatterySimulatorControllerRequestStream {
1889 fn is_terminated(&self) -> bool {
1890 self.is_terminated
1891 }
1892}
1893
1894impl fidl::endpoints::RequestStream for BatterySimulatorControllerRequestStream {
1895 type Protocol = BatterySimulatorControllerMarker;
1896 type ControlHandle = BatterySimulatorControllerControlHandle;
1897
1898 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1899 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1900 }
1901
1902 fn control_handle(&self) -> Self::ControlHandle {
1903 BatterySimulatorControllerControlHandle { inner: self.inner.clone() }
1904 }
1905
1906 fn into_inner(
1907 self,
1908 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1909 {
1910 (self.inner, self.is_terminated)
1911 }
1912
1913 fn from_inner(
1914 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1915 is_terminated: bool,
1916 ) -> Self {
1917 Self { inner, is_terminated }
1918 }
1919}
1920
1921impl futures::Stream for BatterySimulatorControllerRequestStream {
1922 type Item = Result<BatterySimulatorControllerRequest, fidl::Error>;
1923
1924 fn poll_next(
1925 mut self: std::pin::Pin<&mut Self>,
1926 cx: &mut std::task::Context<'_>,
1927 ) -> std::task::Poll<Option<Self::Item>> {
1928 let this = &mut *self;
1929 if this.inner.check_shutdown(cx) {
1930 this.is_terminated = true;
1931 return std::task::Poll::Ready(None);
1932 }
1933 if this.is_terminated {
1934 panic!("polled BatterySimulatorControllerRequestStream after completion");
1935 }
1936 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1937 |bytes, handles| {
1938 match this.inner.channel().read_etc(cx, bytes, handles) {
1939 std::task::Poll::Ready(Ok(())) => {}
1940 std::task::Poll::Pending => return std::task::Poll::Pending,
1941 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1942 this.is_terminated = true;
1943 return std::task::Poll::Ready(None);
1944 }
1945 std::task::Poll::Ready(Err(e)) => {
1946 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1947 e.into(),
1948 ))));
1949 }
1950 }
1951
1952 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1954
1955 std::task::Poll::Ready(Some(match header.ordinal {
1956 0x4a20d3731366aaf8 => {
1957 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1958 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1959 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1960 let control_handle = BatterySimulatorControllerControlHandle {
1961 inner: this.inner.clone(),
1962 };
1963 Ok(BatterySimulatorControllerRequest::GetBatteryInfo {
1964 responder: BatterySimulatorControllerGetBatteryInfoResponder {
1965 control_handle: std::mem::ManuallyDrop::new(control_handle),
1966 tx_id: header.tx_id,
1967 },
1968 })
1969 }
1970 0x2343eb65038c8b34 => {
1971 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1972 let mut req = fidl::new_empty!(BatterySimulatorControllerSetBatteryStatusRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1973 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatteryStatusRequest>(&header, _body_bytes, handles, &mut req)?;
1974 let control_handle = BatterySimulatorControllerControlHandle {
1975 inner: this.inner.clone(),
1976 };
1977 Ok(BatterySimulatorControllerRequest::SetBatteryStatus {battery_status: req.battery_status,
1978
1979 control_handle,
1980 })
1981 }
1982 0x79b2bf1a387acd85 => {
1983 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1984 let mut req = fidl::new_empty!(BatterySimulatorControllerSetChargeStatusRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1985 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetChargeStatusRequest>(&header, _body_bytes, handles, &mut req)?;
1986 let control_handle = BatterySimulatorControllerControlHandle {
1987 inner: this.inner.clone(),
1988 };
1989 Ok(BatterySimulatorControllerRequest::SetChargeStatus {charge_status: req.charge_status,
1990
1991 control_handle,
1992 })
1993 }
1994 0xb40433f42c33527 => {
1995 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1996 let mut req = fidl::new_empty!(BatterySimulatorControllerSetChargeSourceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1997 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetChargeSourceRequest>(&header, _body_bytes, handles, &mut req)?;
1998 let control_handle = BatterySimulatorControllerControlHandle {
1999 inner: this.inner.clone(),
2000 };
2001 Ok(BatterySimulatorControllerRequest::SetChargeSource {charge_source: req.charge_source,
2002
2003 control_handle,
2004 })
2005 }
2006 0x64a9d96eb7a45a9f => {
2007 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2008 let mut req = fidl::new_empty!(BatterySimulatorControllerSetBatteryPercentageRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2009 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatteryPercentageRequest>(&header, _body_bytes, handles, &mut req)?;
2010 let control_handle = BatterySimulatorControllerControlHandle {
2011 inner: this.inner.clone(),
2012 };
2013 Ok(BatterySimulatorControllerRequest::SetBatteryPercentage {percent: req.percent,
2014
2015 control_handle,
2016 })
2017 }
2018 0x577fc3314f7a48a4 => {
2019 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2020 let mut req = fidl::new_empty!(BatterySimulatorControllerSetLevelStatusRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2021 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetLevelStatusRequest>(&header, _body_bytes, handles, &mut req)?;
2022 let control_handle = BatterySimulatorControllerControlHandle {
2023 inner: this.inner.clone(),
2024 };
2025 Ok(BatterySimulatorControllerRequest::SetLevelStatus {level_status: req.level_status,
2026
2027 control_handle,
2028 })
2029 }
2030 0x7427251c9d2a794e => {
2031 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2032 let mut req = fidl::new_empty!(BatterySimulatorControllerSetTimeRemainingRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2033 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetTimeRemainingRequest>(&header, _body_bytes, handles, &mut req)?;
2034 let control_handle = BatterySimulatorControllerControlHandle {
2035 inner: this.inner.clone(),
2036 };
2037 Ok(BatterySimulatorControllerRequest::SetTimeRemaining {duration: req.duration,
2038
2039 control_handle,
2040 })
2041 }
2042 0x75588eae6b9b67e3 => {
2043 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2044 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
2045 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2046 let control_handle = BatterySimulatorControllerControlHandle {
2047 inner: this.inner.clone(),
2048 };
2049 Ok(BatterySimulatorControllerRequest::DisconnectRealBattery {
2050 control_handle,
2051 })
2052 }
2053 0x4bf85cfe3476975d => {
2054 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2055 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
2056 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2057 let control_handle = BatterySimulatorControllerControlHandle {
2058 inner: this.inner.clone(),
2059 };
2060 Ok(BatterySimulatorControllerRequest::IsSimulating {
2061 responder: BatterySimulatorControllerIsSimulatingResponder {
2062 control_handle: std::mem::ManuallyDrop::new(control_handle),
2063 tx_id: header.tx_id,
2064 },
2065 })
2066 }
2067 0x18306690352d9dfa => {
2068 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2069 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
2070 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2071 let control_handle = BatterySimulatorControllerControlHandle {
2072 inner: this.inner.clone(),
2073 };
2074 Ok(BatterySimulatorControllerRequest::ReconnectRealBattery {
2075 control_handle,
2076 })
2077 }
2078 0x5462c9e9f947b8ce => {
2079 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2080 let mut req = fidl::new_empty!(BatterySimulatorControllerSetPresentVoltageMvRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2081 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetPresentVoltageMvRequest>(&header, _body_bytes, handles, &mut req)?;
2082 let control_handle = BatterySimulatorControllerControlHandle {
2083 inner: this.inner.clone(),
2084 };
2085 Ok(BatterySimulatorControllerRequest::SetPresentVoltageMv {voltage: req.voltage,
2086
2087 control_handle,
2088 })
2089 }
2090 0x54aa3c318fac5c33 => {
2091 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2092 let mut req = fidl::new_empty!(BatterySimulatorControllerSetRemainingChargeUahRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2093 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetRemainingChargeUahRequest>(&header, _body_bytes, handles, &mut req)?;
2094 let control_handle = BatterySimulatorControllerControlHandle {
2095 inner: this.inner.clone(),
2096 };
2097 Ok(BatterySimulatorControllerRequest::SetRemainingChargeUah {charge: req.charge,
2098
2099 control_handle,
2100 })
2101 }
2102 0x7324672546976583 => {
2103 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2104 let mut req = fidl::new_empty!(BatterySimulatorControllerSetBatterySpecRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2105 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatterySpecRequest>(&header, _body_bytes, handles, &mut req)?;
2106 let control_handle = BatterySimulatorControllerControlHandle {
2107 inner: this.inner.clone(),
2108 };
2109 Ok(BatterySimulatorControllerRequest::SetBatterySpec {spec: req.spec,
2110
2111 control_handle,
2112 })
2113 }
2114 _ => Err(fidl::Error::UnknownOrdinal {
2115 ordinal: header.ordinal,
2116 protocol_name: <BatterySimulatorControllerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2117 }),
2118 }))
2119 },
2120 )
2121 }
2122}
2123
2124#[derive(Debug)]
2126pub enum BatterySimulatorControllerRequest {
2127 GetBatteryInfo { responder: BatterySimulatorControllerGetBatteryInfoResponder },
2130 SetBatteryStatus {
2133 battery_status: fidl_fuchsia_power_battery::BatteryStatus,
2134 control_handle: BatterySimulatorControllerControlHandle,
2135 },
2136 SetChargeStatus {
2139 charge_status: fidl_fuchsia_power_battery::ChargeStatus,
2140 control_handle: BatterySimulatorControllerControlHandle,
2141 },
2142 SetChargeSource {
2145 charge_source: fidl_fuchsia_power_battery::ChargeSource,
2146 control_handle: BatterySimulatorControllerControlHandle,
2147 },
2148 SetBatteryPercentage { percent: f32, control_handle: BatterySimulatorControllerControlHandle },
2151 SetLevelStatus {
2154 level_status: fidl_fuchsia_power_battery::LevelStatus,
2155 control_handle: BatterySimulatorControllerControlHandle,
2156 },
2157 SetTimeRemaining { duration: i64, control_handle: BatterySimulatorControllerControlHandle },
2160 DisconnectRealBattery { control_handle: BatterySimulatorControllerControlHandle },
2162 IsSimulating { responder: BatterySimulatorControllerIsSimulatingResponder },
2164 ReconnectRealBattery { control_handle: BatterySimulatorControllerControlHandle },
2167 SetPresentVoltageMv { voltage: u32, control_handle: BatterySimulatorControllerControlHandle },
2170 SetRemainingChargeUah { charge: u32, control_handle: BatterySimulatorControllerControlHandle },
2173 SetBatterySpec {
2175 spec: fidl_fuchsia_power_battery::BatterySpec,
2176 control_handle: BatterySimulatorControllerControlHandle,
2177 },
2178}
2179
2180impl BatterySimulatorControllerRequest {
2181 #[allow(irrefutable_let_patterns)]
2182 pub fn into_get_battery_info(
2183 self,
2184 ) -> Option<(BatterySimulatorControllerGetBatteryInfoResponder)> {
2185 if let BatterySimulatorControllerRequest::GetBatteryInfo { responder } = self {
2186 Some((responder))
2187 } else {
2188 None
2189 }
2190 }
2191
2192 #[allow(irrefutable_let_patterns)]
2193 pub fn into_set_battery_status(
2194 self,
2195 ) -> Option<(fidl_fuchsia_power_battery::BatteryStatus, BatterySimulatorControllerControlHandle)>
2196 {
2197 if let BatterySimulatorControllerRequest::SetBatteryStatus {
2198 battery_status,
2199 control_handle,
2200 } = self
2201 {
2202 Some((battery_status, control_handle))
2203 } else {
2204 None
2205 }
2206 }
2207
2208 #[allow(irrefutable_let_patterns)]
2209 pub fn into_set_charge_status(
2210 self,
2211 ) -> Option<(fidl_fuchsia_power_battery::ChargeStatus, BatterySimulatorControllerControlHandle)>
2212 {
2213 if let BatterySimulatorControllerRequest::SetChargeStatus {
2214 charge_status,
2215 control_handle,
2216 } = self
2217 {
2218 Some((charge_status, control_handle))
2219 } else {
2220 None
2221 }
2222 }
2223
2224 #[allow(irrefutable_let_patterns)]
2225 pub fn into_set_charge_source(
2226 self,
2227 ) -> Option<(fidl_fuchsia_power_battery::ChargeSource, BatterySimulatorControllerControlHandle)>
2228 {
2229 if let BatterySimulatorControllerRequest::SetChargeSource {
2230 charge_source,
2231 control_handle,
2232 } = self
2233 {
2234 Some((charge_source, control_handle))
2235 } else {
2236 None
2237 }
2238 }
2239
2240 #[allow(irrefutable_let_patterns)]
2241 pub fn into_set_battery_percentage(
2242 self,
2243 ) -> Option<(f32, BatterySimulatorControllerControlHandle)> {
2244 if let BatterySimulatorControllerRequest::SetBatteryPercentage { percent, control_handle } =
2245 self
2246 {
2247 Some((percent, control_handle))
2248 } else {
2249 None
2250 }
2251 }
2252
2253 #[allow(irrefutable_let_patterns)]
2254 pub fn into_set_level_status(
2255 self,
2256 ) -> Option<(fidl_fuchsia_power_battery::LevelStatus, BatterySimulatorControllerControlHandle)>
2257 {
2258 if let BatterySimulatorControllerRequest::SetLevelStatus { level_status, control_handle } =
2259 self
2260 {
2261 Some((level_status, control_handle))
2262 } else {
2263 None
2264 }
2265 }
2266
2267 #[allow(irrefutable_let_patterns)]
2268 pub fn into_set_time_remaining(self) -> Option<(i64, BatterySimulatorControllerControlHandle)> {
2269 if let BatterySimulatorControllerRequest::SetTimeRemaining { duration, control_handle } =
2270 self
2271 {
2272 Some((duration, control_handle))
2273 } else {
2274 None
2275 }
2276 }
2277
2278 #[allow(irrefutable_let_patterns)]
2279 pub fn into_disconnect_real_battery(self) -> Option<(BatterySimulatorControllerControlHandle)> {
2280 if let BatterySimulatorControllerRequest::DisconnectRealBattery { control_handle } = self {
2281 Some((control_handle))
2282 } else {
2283 None
2284 }
2285 }
2286
2287 #[allow(irrefutable_let_patterns)]
2288 pub fn into_is_simulating(self) -> Option<(BatterySimulatorControllerIsSimulatingResponder)> {
2289 if let BatterySimulatorControllerRequest::IsSimulating { responder } = self {
2290 Some((responder))
2291 } else {
2292 None
2293 }
2294 }
2295
2296 #[allow(irrefutable_let_patterns)]
2297 pub fn into_reconnect_real_battery(self) -> Option<(BatterySimulatorControllerControlHandle)> {
2298 if let BatterySimulatorControllerRequest::ReconnectRealBattery { control_handle } = self {
2299 Some((control_handle))
2300 } else {
2301 None
2302 }
2303 }
2304
2305 #[allow(irrefutable_let_patterns)]
2306 pub fn into_set_present_voltage_mv(
2307 self,
2308 ) -> Option<(u32, BatterySimulatorControllerControlHandle)> {
2309 if let BatterySimulatorControllerRequest::SetPresentVoltageMv { voltage, control_handle } =
2310 self
2311 {
2312 Some((voltage, control_handle))
2313 } else {
2314 None
2315 }
2316 }
2317
2318 #[allow(irrefutable_let_patterns)]
2319 pub fn into_set_remaining_charge_uah(
2320 self,
2321 ) -> Option<(u32, BatterySimulatorControllerControlHandle)> {
2322 if let BatterySimulatorControllerRequest::SetRemainingChargeUah { charge, control_handle } =
2323 self
2324 {
2325 Some((charge, control_handle))
2326 } else {
2327 None
2328 }
2329 }
2330
2331 #[allow(irrefutable_let_patterns)]
2332 pub fn into_set_battery_spec(
2333 self,
2334 ) -> Option<(fidl_fuchsia_power_battery::BatterySpec, BatterySimulatorControllerControlHandle)>
2335 {
2336 if let BatterySimulatorControllerRequest::SetBatterySpec { spec, control_handle } = self {
2337 Some((spec, control_handle))
2338 } else {
2339 None
2340 }
2341 }
2342
2343 pub fn method_name(&self) -> &'static str {
2345 match *self {
2346 BatterySimulatorControllerRequest::GetBatteryInfo { .. } => "get_battery_info",
2347 BatterySimulatorControllerRequest::SetBatteryStatus { .. } => "set_battery_status",
2348 BatterySimulatorControllerRequest::SetChargeStatus { .. } => "set_charge_status",
2349 BatterySimulatorControllerRequest::SetChargeSource { .. } => "set_charge_source",
2350 BatterySimulatorControllerRequest::SetBatteryPercentage { .. } => {
2351 "set_battery_percentage"
2352 }
2353 BatterySimulatorControllerRequest::SetLevelStatus { .. } => "set_level_status",
2354 BatterySimulatorControllerRequest::SetTimeRemaining { .. } => "set_time_remaining",
2355 BatterySimulatorControllerRequest::DisconnectRealBattery { .. } => {
2356 "disconnect_real_battery"
2357 }
2358 BatterySimulatorControllerRequest::IsSimulating { .. } => "is_simulating",
2359 BatterySimulatorControllerRequest::ReconnectRealBattery { .. } => {
2360 "reconnect_real_battery"
2361 }
2362 BatterySimulatorControllerRequest::SetPresentVoltageMv { .. } => {
2363 "set_present_voltage_mv"
2364 }
2365 BatterySimulatorControllerRequest::SetRemainingChargeUah { .. } => {
2366 "set_remaining_charge_uah"
2367 }
2368 BatterySimulatorControllerRequest::SetBatterySpec { .. } => "set_battery_spec",
2369 }
2370 }
2371}
2372
2373#[derive(Debug, Clone)]
2374pub struct BatterySimulatorControllerControlHandle {
2375 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2376}
2377
2378impl fidl::endpoints::ControlHandle for BatterySimulatorControllerControlHandle {
2379 fn shutdown(&self) {
2380 self.inner.shutdown()
2381 }
2382
2383 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2384 self.inner.shutdown_with_epitaph(status)
2385 }
2386
2387 fn is_closed(&self) -> bool {
2388 self.inner.channel().is_closed()
2389 }
2390 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2391 self.inner.channel().on_closed()
2392 }
2393
2394 #[cfg(target_os = "fuchsia")]
2395 fn signal_peer(
2396 &self,
2397 clear_mask: zx::Signals,
2398 set_mask: zx::Signals,
2399 ) -> Result<(), zx_status::Status> {
2400 use fidl::Peered;
2401 self.inner.channel().signal_peer(clear_mask, set_mask)
2402 }
2403}
2404
2405impl BatterySimulatorControllerControlHandle {}
2406
2407#[must_use = "FIDL methods require a response to be sent"]
2408#[derive(Debug)]
2409pub struct BatterySimulatorControllerGetBatteryInfoResponder {
2410 control_handle: std::mem::ManuallyDrop<BatterySimulatorControllerControlHandle>,
2411 tx_id: u32,
2412}
2413
2414impl std::ops::Drop for BatterySimulatorControllerGetBatteryInfoResponder {
2418 fn drop(&mut self) {
2419 self.control_handle.shutdown();
2420 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2422 }
2423}
2424
2425impl fidl::endpoints::Responder for BatterySimulatorControllerGetBatteryInfoResponder {
2426 type ControlHandle = BatterySimulatorControllerControlHandle;
2427
2428 fn control_handle(&self) -> &BatterySimulatorControllerControlHandle {
2429 &self.control_handle
2430 }
2431
2432 fn drop_without_shutdown(mut self) {
2433 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2435 std::mem::forget(self);
2437 }
2438}
2439
2440impl BatterySimulatorControllerGetBatteryInfoResponder {
2441 pub fn send(
2445 self,
2446 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
2447 ) -> Result<(), fidl::Error> {
2448 let _result = self.send_raw(info);
2449 if _result.is_err() {
2450 self.control_handle.shutdown();
2451 }
2452 self.drop_without_shutdown();
2453 _result
2454 }
2455
2456 pub fn send_no_shutdown_on_err(
2458 self,
2459 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
2460 ) -> Result<(), fidl::Error> {
2461 let _result = self.send_raw(info);
2462 self.drop_without_shutdown();
2463 _result
2464 }
2465
2466 fn send_raw(
2467 &self,
2468 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
2469 ) -> Result<(), fidl::Error> {
2470 self.control_handle.inner.send::<BatterySimulatorControllerGetBatteryInfoResponse>(
2471 (info,),
2472 self.tx_id,
2473 0x4a20d3731366aaf8,
2474 fidl::encoding::DynamicFlags::empty(),
2475 )
2476 }
2477}
2478
2479#[must_use = "FIDL methods require a response to be sent"]
2480#[derive(Debug)]
2481pub struct BatterySimulatorControllerIsSimulatingResponder {
2482 control_handle: std::mem::ManuallyDrop<BatterySimulatorControllerControlHandle>,
2483 tx_id: u32,
2484}
2485
2486impl std::ops::Drop for BatterySimulatorControllerIsSimulatingResponder {
2490 fn drop(&mut self) {
2491 self.control_handle.shutdown();
2492 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2494 }
2495}
2496
2497impl fidl::endpoints::Responder for BatterySimulatorControllerIsSimulatingResponder {
2498 type ControlHandle = BatterySimulatorControllerControlHandle;
2499
2500 fn control_handle(&self) -> &BatterySimulatorControllerControlHandle {
2501 &self.control_handle
2502 }
2503
2504 fn drop_without_shutdown(mut self) {
2505 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2507 std::mem::forget(self);
2509 }
2510}
2511
2512impl BatterySimulatorControllerIsSimulatingResponder {
2513 pub fn send(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
2517 let _result = self.send_raw(simulation_state);
2518 if _result.is_err() {
2519 self.control_handle.shutdown();
2520 }
2521 self.drop_without_shutdown();
2522 _result
2523 }
2524
2525 pub fn send_no_shutdown_on_err(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
2527 let _result = self.send_raw(simulation_state);
2528 self.drop_without_shutdown();
2529 _result
2530 }
2531
2532 fn send_raw(&self, mut simulation_state: bool) -> Result<(), fidl::Error> {
2533 self.control_handle.inner.send::<BatterySimulatorControllerIsSimulatingResponse>(
2534 (simulation_state,),
2535 self.tx_id,
2536 0x4bf85cfe3476975d,
2537 fidl::encoding::DynamicFlags::empty(),
2538 )
2539 }
2540}
2541
2542mod internal {
2543 use super::*;
2544}