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 BatterySimulatorControlHandle {
1109 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
1110 self.inner.shutdown_with_epitaph(status.into())
1111 }
1112}
1113
1114impl fidl::endpoints::ControlHandle for BatterySimulatorControlHandle {
1115 fn shutdown(&self) {
1116 self.inner.shutdown()
1117 }
1118
1119 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
1120 self.inner.shutdown_with_epitaph(status)
1121 }
1122
1123 fn is_closed(&self) -> bool {
1124 self.inner.channel().is_closed()
1125 }
1126 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
1127 self.inner.channel().on_closed()
1128 }
1129
1130 #[cfg(target_os = "fuchsia")]
1131 fn signal_peer(
1132 &self,
1133 clear_mask: zx::Signals,
1134 set_mask: zx::Signals,
1135 ) -> Result<(), zx_status::Status> {
1136 use fidl::Peered;
1137 self.inner.channel().signal_peer(clear_mask, set_mask)
1138 }
1139}
1140
1141impl BatterySimulatorControlHandle {}
1142
1143#[must_use = "FIDL methods require a response to be sent"]
1144#[derive(Debug)]
1145pub struct BatterySimulatorGetBatteryInfoResponder {
1146 control_handle: std::mem::ManuallyDrop<BatterySimulatorControlHandle>,
1147 tx_id: u32,
1148}
1149
1150impl std::ops::Drop for BatterySimulatorGetBatteryInfoResponder {
1154 fn drop(&mut self) {
1155 self.control_handle.shutdown();
1156 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1158 }
1159}
1160
1161impl fidl::endpoints::Responder for BatterySimulatorGetBatteryInfoResponder {
1162 type ControlHandle = BatterySimulatorControlHandle;
1163
1164 fn control_handle(&self) -> &BatterySimulatorControlHandle {
1165 &self.control_handle
1166 }
1167
1168 fn drop_without_shutdown(mut self) {
1169 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1171 std::mem::forget(self);
1173 }
1174}
1175
1176impl BatterySimulatorGetBatteryInfoResponder {
1177 pub fn send(
1181 self,
1182 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
1183 ) -> Result<(), fidl::Error> {
1184 let _result = self.send_raw(info);
1185 if _result.is_err() {
1186 self.control_handle.shutdown();
1187 }
1188 self.drop_without_shutdown();
1189 _result
1190 }
1191
1192 pub fn send_no_shutdown_on_err(
1194 self,
1195 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
1196 ) -> Result<(), fidl::Error> {
1197 let _result = self.send_raw(info);
1198 self.drop_without_shutdown();
1199 _result
1200 }
1201
1202 fn send_raw(
1203 &self,
1204 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
1205 ) -> Result<(), fidl::Error> {
1206 self.control_handle.inner.send::<BatterySimulatorControllerGetBatteryInfoResponse>(
1207 (info,),
1208 self.tx_id,
1209 0x4a20d3731366aaf8,
1210 fidl::encoding::DynamicFlags::empty(),
1211 )
1212 }
1213}
1214
1215#[must_use = "FIDL methods require a response to be sent"]
1216#[derive(Debug)]
1217pub struct BatterySimulatorIsSimulatingResponder {
1218 control_handle: std::mem::ManuallyDrop<BatterySimulatorControlHandle>,
1219 tx_id: u32,
1220}
1221
1222impl std::ops::Drop for BatterySimulatorIsSimulatingResponder {
1226 fn drop(&mut self) {
1227 self.control_handle.shutdown();
1228 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1230 }
1231}
1232
1233impl fidl::endpoints::Responder for BatterySimulatorIsSimulatingResponder {
1234 type ControlHandle = BatterySimulatorControlHandle;
1235
1236 fn control_handle(&self) -> &BatterySimulatorControlHandle {
1237 &self.control_handle
1238 }
1239
1240 fn drop_without_shutdown(mut self) {
1241 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
1243 std::mem::forget(self);
1245 }
1246}
1247
1248impl BatterySimulatorIsSimulatingResponder {
1249 pub fn send(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
1253 let _result = self.send_raw(simulation_state);
1254 if _result.is_err() {
1255 self.control_handle.shutdown();
1256 }
1257 self.drop_without_shutdown();
1258 _result
1259 }
1260
1261 pub fn send_no_shutdown_on_err(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
1263 let _result = self.send_raw(simulation_state);
1264 self.drop_without_shutdown();
1265 _result
1266 }
1267
1268 fn send_raw(&self, mut simulation_state: bool) -> Result<(), fidl::Error> {
1269 self.control_handle.inner.send::<BatterySimulatorControllerIsSimulatingResponse>(
1270 (simulation_state,),
1271 self.tx_id,
1272 0x4bf85cfe3476975d,
1273 fidl::encoding::DynamicFlags::empty(),
1274 )
1275 }
1276}
1277
1278#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
1279pub struct BatterySimulatorControllerMarker;
1280
1281impl fidl::endpoints::ProtocolMarker for BatterySimulatorControllerMarker {
1282 type Proxy = BatterySimulatorControllerProxy;
1283 type RequestStream = BatterySimulatorControllerRequestStream;
1284 #[cfg(target_os = "fuchsia")]
1285 type SynchronousProxy = BatterySimulatorControllerSynchronousProxy;
1286
1287 const DEBUG_NAME: &'static str = "(anonymous) BatterySimulatorController";
1288}
1289
1290pub trait BatterySimulatorControllerProxyInterface: Send + Sync {
1291 type GetBatteryInfoResponseFut: std::future::Future<Output = Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error>>
1292 + Send;
1293 fn r#get_battery_info(&self) -> Self::GetBatteryInfoResponseFut;
1294 fn r#set_battery_status(
1295 &self,
1296 battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1297 ) -> Result<(), fidl::Error>;
1298 fn r#set_charge_status(
1299 &self,
1300 charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1301 ) -> Result<(), fidl::Error>;
1302 fn r#set_charge_source(
1303 &self,
1304 charge_source: fidl_fuchsia_power_battery::ChargeSource,
1305 ) -> Result<(), fidl::Error>;
1306 fn r#set_battery_percentage(&self, percent: f32) -> Result<(), fidl::Error>;
1307 fn r#set_level_status(
1308 &self,
1309 level_status: fidl_fuchsia_power_battery::LevelStatus,
1310 ) -> Result<(), fidl::Error>;
1311 fn r#set_time_remaining(&self, duration: i64) -> Result<(), fidl::Error>;
1312 fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error>;
1313 type IsSimulatingResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
1314 fn r#is_simulating(&self) -> Self::IsSimulatingResponseFut;
1315 fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error>;
1316 fn r#set_present_voltage_mv(&self, voltage: u32) -> Result<(), fidl::Error>;
1317 fn r#set_remaining_charge_uah(&self, charge: u32) -> Result<(), fidl::Error>;
1318 fn r#set_battery_spec(
1319 &self,
1320 spec: &fidl_fuchsia_power_battery::BatterySpec,
1321 ) -> Result<(), fidl::Error>;
1322}
1323#[derive(Debug)]
1324#[cfg(target_os = "fuchsia")]
1325pub struct BatterySimulatorControllerSynchronousProxy {
1326 client: fidl::client::sync::Client,
1327}
1328
1329#[cfg(target_os = "fuchsia")]
1330impl fidl::endpoints::SynchronousProxy for BatterySimulatorControllerSynchronousProxy {
1331 type Proxy = BatterySimulatorControllerProxy;
1332 type Protocol = BatterySimulatorControllerMarker;
1333
1334 fn from_channel(inner: fidl::Channel) -> Self {
1335 Self::new(inner)
1336 }
1337
1338 fn into_channel(self) -> fidl::Channel {
1339 self.client.into_channel()
1340 }
1341
1342 fn as_channel(&self) -> &fidl::Channel {
1343 self.client.as_channel()
1344 }
1345}
1346
1347#[cfg(target_os = "fuchsia")]
1348impl BatterySimulatorControllerSynchronousProxy {
1349 pub fn new(channel: fidl::Channel) -> Self {
1350 Self { client: fidl::client::sync::Client::new(channel) }
1351 }
1352
1353 pub fn into_channel(self) -> fidl::Channel {
1354 self.client.into_channel()
1355 }
1356
1357 pub fn wait_for_event(
1360 &self,
1361 deadline: zx::MonotonicInstant,
1362 ) -> Result<BatterySimulatorControllerEvent, fidl::Error> {
1363 BatterySimulatorControllerEvent::decode(
1364 self.client.wait_for_event::<BatterySimulatorControllerMarker>(deadline)?,
1365 )
1366 }
1367
1368 pub fn r#get_battery_info(
1371 &self,
1372 ___deadline: zx::MonotonicInstant,
1373 ) -> Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error> {
1374 let _response = self.client.send_query::<
1375 fidl::encoding::EmptyPayload,
1376 BatterySimulatorControllerGetBatteryInfoResponse,
1377 BatterySimulatorControllerMarker,
1378 >(
1379 (),
1380 0x4a20d3731366aaf8,
1381 fidl::encoding::DynamicFlags::empty(),
1382 ___deadline,
1383 )?;
1384 Ok(_response.info)
1385 }
1386
1387 pub fn r#set_battery_status(
1390 &self,
1391 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1392 ) -> Result<(), fidl::Error> {
1393 self.client.send::<BatterySimulatorControllerSetBatteryStatusRequest>(
1394 (battery_status,),
1395 0x2343eb65038c8b34,
1396 fidl::encoding::DynamicFlags::empty(),
1397 )
1398 }
1399
1400 pub fn r#set_charge_status(
1403 &self,
1404 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1405 ) -> Result<(), fidl::Error> {
1406 self.client.send::<BatterySimulatorControllerSetChargeStatusRequest>(
1407 (charge_status,),
1408 0x79b2bf1a387acd85,
1409 fidl::encoding::DynamicFlags::empty(),
1410 )
1411 }
1412
1413 pub fn r#set_charge_source(
1416 &self,
1417 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
1418 ) -> Result<(), fidl::Error> {
1419 self.client.send::<BatterySimulatorControllerSetChargeSourceRequest>(
1420 (charge_source,),
1421 0xb40433f42c33527,
1422 fidl::encoding::DynamicFlags::empty(),
1423 )
1424 }
1425
1426 pub fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
1429 self.client.send::<BatterySimulatorControllerSetBatteryPercentageRequest>(
1430 (percent,),
1431 0x64a9d96eb7a45a9f,
1432 fidl::encoding::DynamicFlags::empty(),
1433 )
1434 }
1435
1436 pub fn r#set_level_status(
1439 &self,
1440 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
1441 ) -> Result<(), fidl::Error> {
1442 self.client.send::<BatterySimulatorControllerSetLevelStatusRequest>(
1443 (level_status,),
1444 0x577fc3314f7a48a4,
1445 fidl::encoding::DynamicFlags::empty(),
1446 )
1447 }
1448
1449 pub fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
1452 self.client.send::<BatterySimulatorControllerSetTimeRemainingRequest>(
1453 (duration,),
1454 0x7427251c9d2a794e,
1455 fidl::encoding::DynamicFlags::empty(),
1456 )
1457 }
1458
1459 pub fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
1461 self.client.send::<fidl::encoding::EmptyPayload>(
1462 (),
1463 0x75588eae6b9b67e3,
1464 fidl::encoding::DynamicFlags::empty(),
1465 )
1466 }
1467
1468 pub fn r#is_simulating(&self, ___deadline: zx::MonotonicInstant) -> Result<bool, fidl::Error> {
1470 let _response = self.client.send_query::<
1471 fidl::encoding::EmptyPayload,
1472 BatterySimulatorControllerIsSimulatingResponse,
1473 BatterySimulatorControllerMarker,
1474 >(
1475 (),
1476 0x4bf85cfe3476975d,
1477 fidl::encoding::DynamicFlags::empty(),
1478 ___deadline,
1479 )?;
1480 Ok(_response.simulation_state)
1481 }
1482
1483 pub fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
1486 self.client.send::<fidl::encoding::EmptyPayload>(
1487 (),
1488 0x18306690352d9dfa,
1489 fidl::encoding::DynamicFlags::empty(),
1490 )
1491 }
1492
1493 pub fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
1496 self.client.send::<BatterySimulatorControllerSetPresentVoltageMvRequest>(
1497 (voltage,),
1498 0x5462c9e9f947b8ce,
1499 fidl::encoding::DynamicFlags::empty(),
1500 )
1501 }
1502
1503 pub fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
1506 self.client.send::<BatterySimulatorControllerSetRemainingChargeUahRequest>(
1507 (charge,),
1508 0x54aa3c318fac5c33,
1509 fidl::encoding::DynamicFlags::empty(),
1510 )
1511 }
1512
1513 pub fn r#set_battery_spec(
1515 &self,
1516 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
1517 ) -> Result<(), fidl::Error> {
1518 self.client.send::<BatterySimulatorControllerSetBatterySpecRequest>(
1519 (spec,),
1520 0x7324672546976583,
1521 fidl::encoding::DynamicFlags::empty(),
1522 )
1523 }
1524}
1525
1526#[cfg(target_os = "fuchsia")]
1527impl From<BatterySimulatorControllerSynchronousProxy> for zx::NullableHandle {
1528 fn from(value: BatterySimulatorControllerSynchronousProxy) -> Self {
1529 value.into_channel().into()
1530 }
1531}
1532
1533#[cfg(target_os = "fuchsia")]
1534impl From<fidl::Channel> for BatterySimulatorControllerSynchronousProxy {
1535 fn from(value: fidl::Channel) -> Self {
1536 Self::new(value)
1537 }
1538}
1539
1540#[cfg(target_os = "fuchsia")]
1541impl fidl::endpoints::FromClient for BatterySimulatorControllerSynchronousProxy {
1542 type Protocol = BatterySimulatorControllerMarker;
1543
1544 fn from_client(value: fidl::endpoints::ClientEnd<BatterySimulatorControllerMarker>) -> Self {
1545 Self::new(value.into_channel())
1546 }
1547}
1548
1549#[derive(Debug, Clone)]
1550pub struct BatterySimulatorControllerProxy {
1551 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1552}
1553
1554impl fidl::endpoints::Proxy for BatterySimulatorControllerProxy {
1555 type Protocol = BatterySimulatorControllerMarker;
1556
1557 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1558 Self::new(inner)
1559 }
1560
1561 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1562 self.client.into_channel().map_err(|client| Self { client })
1563 }
1564
1565 fn as_channel(&self) -> &::fidl::AsyncChannel {
1566 self.client.as_channel()
1567 }
1568}
1569
1570impl BatterySimulatorControllerProxy {
1571 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1573 let protocol_name =
1574 <BatterySimulatorControllerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1575 Self { client: fidl::client::Client::new(channel, protocol_name) }
1576 }
1577
1578 pub fn take_event_stream(&self) -> BatterySimulatorControllerEventStream {
1584 BatterySimulatorControllerEventStream { event_receiver: self.client.take_event_receiver() }
1585 }
1586
1587 pub fn r#get_battery_info(
1590 &self,
1591 ) -> fidl::client::QueryResponseFut<
1592 fidl_fuchsia_power_battery::BatteryInfo,
1593 fidl::encoding::DefaultFuchsiaResourceDialect,
1594 > {
1595 BatterySimulatorControllerProxyInterface::r#get_battery_info(self)
1596 }
1597
1598 pub fn r#set_battery_status(
1601 &self,
1602 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1603 ) -> Result<(), fidl::Error> {
1604 BatterySimulatorControllerProxyInterface::r#set_battery_status(self, battery_status)
1605 }
1606
1607 pub fn r#set_charge_status(
1610 &self,
1611 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1612 ) -> Result<(), fidl::Error> {
1613 BatterySimulatorControllerProxyInterface::r#set_charge_status(self, charge_status)
1614 }
1615
1616 pub fn r#set_charge_source(
1619 &self,
1620 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
1621 ) -> Result<(), fidl::Error> {
1622 BatterySimulatorControllerProxyInterface::r#set_charge_source(self, charge_source)
1623 }
1624
1625 pub fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
1628 BatterySimulatorControllerProxyInterface::r#set_battery_percentage(self, percent)
1629 }
1630
1631 pub fn r#set_level_status(
1634 &self,
1635 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
1636 ) -> Result<(), fidl::Error> {
1637 BatterySimulatorControllerProxyInterface::r#set_level_status(self, level_status)
1638 }
1639
1640 pub fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
1643 BatterySimulatorControllerProxyInterface::r#set_time_remaining(self, duration)
1644 }
1645
1646 pub fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
1648 BatterySimulatorControllerProxyInterface::r#disconnect_real_battery(self)
1649 }
1650
1651 pub fn r#is_simulating(
1653 &self,
1654 ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
1655 BatterySimulatorControllerProxyInterface::r#is_simulating(self)
1656 }
1657
1658 pub fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
1661 BatterySimulatorControllerProxyInterface::r#reconnect_real_battery(self)
1662 }
1663
1664 pub fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
1667 BatterySimulatorControllerProxyInterface::r#set_present_voltage_mv(self, voltage)
1668 }
1669
1670 pub fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
1673 BatterySimulatorControllerProxyInterface::r#set_remaining_charge_uah(self, charge)
1674 }
1675
1676 pub fn r#set_battery_spec(
1678 &self,
1679 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
1680 ) -> Result<(), fidl::Error> {
1681 BatterySimulatorControllerProxyInterface::r#set_battery_spec(self, spec)
1682 }
1683}
1684
1685impl BatterySimulatorControllerProxyInterface for BatterySimulatorControllerProxy {
1686 type GetBatteryInfoResponseFut = fidl::client::QueryResponseFut<
1687 fidl_fuchsia_power_battery::BatteryInfo,
1688 fidl::encoding::DefaultFuchsiaResourceDialect,
1689 >;
1690 fn r#get_battery_info(&self) -> Self::GetBatteryInfoResponseFut {
1691 fn _decode(
1692 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1693 ) -> Result<fidl_fuchsia_power_battery::BatteryInfo, fidl::Error> {
1694 let _response = fidl::client::decode_transaction_body::<
1695 BatterySimulatorControllerGetBatteryInfoResponse,
1696 fidl::encoding::DefaultFuchsiaResourceDialect,
1697 0x4a20d3731366aaf8,
1698 >(_buf?)?;
1699 Ok(_response.info)
1700 }
1701 self.client.send_query_and_decode::<
1702 fidl::encoding::EmptyPayload,
1703 fidl_fuchsia_power_battery::BatteryInfo,
1704 >(
1705 (),
1706 0x4a20d3731366aaf8,
1707 fidl::encoding::DynamicFlags::empty(),
1708 _decode,
1709 )
1710 }
1711
1712 fn r#set_battery_status(
1713 &self,
1714 mut battery_status: fidl_fuchsia_power_battery::BatteryStatus,
1715 ) -> Result<(), fidl::Error> {
1716 self.client.send::<BatterySimulatorControllerSetBatteryStatusRequest>(
1717 (battery_status,),
1718 0x2343eb65038c8b34,
1719 fidl::encoding::DynamicFlags::empty(),
1720 )
1721 }
1722
1723 fn r#set_charge_status(
1724 &self,
1725 mut charge_status: fidl_fuchsia_power_battery::ChargeStatus,
1726 ) -> Result<(), fidl::Error> {
1727 self.client.send::<BatterySimulatorControllerSetChargeStatusRequest>(
1728 (charge_status,),
1729 0x79b2bf1a387acd85,
1730 fidl::encoding::DynamicFlags::empty(),
1731 )
1732 }
1733
1734 fn r#set_charge_source(
1735 &self,
1736 mut charge_source: fidl_fuchsia_power_battery::ChargeSource,
1737 ) -> Result<(), fidl::Error> {
1738 self.client.send::<BatterySimulatorControllerSetChargeSourceRequest>(
1739 (charge_source,),
1740 0xb40433f42c33527,
1741 fidl::encoding::DynamicFlags::empty(),
1742 )
1743 }
1744
1745 fn r#set_battery_percentage(&self, mut percent: f32) -> Result<(), fidl::Error> {
1746 self.client.send::<BatterySimulatorControllerSetBatteryPercentageRequest>(
1747 (percent,),
1748 0x64a9d96eb7a45a9f,
1749 fidl::encoding::DynamicFlags::empty(),
1750 )
1751 }
1752
1753 fn r#set_level_status(
1754 &self,
1755 mut level_status: fidl_fuchsia_power_battery::LevelStatus,
1756 ) -> Result<(), fidl::Error> {
1757 self.client.send::<BatterySimulatorControllerSetLevelStatusRequest>(
1758 (level_status,),
1759 0x577fc3314f7a48a4,
1760 fidl::encoding::DynamicFlags::empty(),
1761 )
1762 }
1763
1764 fn r#set_time_remaining(&self, mut duration: i64) -> Result<(), fidl::Error> {
1765 self.client.send::<BatterySimulatorControllerSetTimeRemainingRequest>(
1766 (duration,),
1767 0x7427251c9d2a794e,
1768 fidl::encoding::DynamicFlags::empty(),
1769 )
1770 }
1771
1772 fn r#disconnect_real_battery(&self) -> Result<(), fidl::Error> {
1773 self.client.send::<fidl::encoding::EmptyPayload>(
1774 (),
1775 0x75588eae6b9b67e3,
1776 fidl::encoding::DynamicFlags::empty(),
1777 )
1778 }
1779
1780 type IsSimulatingResponseFut =
1781 fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
1782 fn r#is_simulating(&self) -> Self::IsSimulatingResponseFut {
1783 fn _decode(
1784 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1785 ) -> Result<bool, fidl::Error> {
1786 let _response = fidl::client::decode_transaction_body::<
1787 BatterySimulatorControllerIsSimulatingResponse,
1788 fidl::encoding::DefaultFuchsiaResourceDialect,
1789 0x4bf85cfe3476975d,
1790 >(_buf?)?;
1791 Ok(_response.simulation_state)
1792 }
1793 self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, bool>(
1794 (),
1795 0x4bf85cfe3476975d,
1796 fidl::encoding::DynamicFlags::empty(),
1797 _decode,
1798 )
1799 }
1800
1801 fn r#reconnect_real_battery(&self) -> Result<(), fidl::Error> {
1802 self.client.send::<fidl::encoding::EmptyPayload>(
1803 (),
1804 0x18306690352d9dfa,
1805 fidl::encoding::DynamicFlags::empty(),
1806 )
1807 }
1808
1809 fn r#set_present_voltage_mv(&self, mut voltage: u32) -> Result<(), fidl::Error> {
1810 self.client.send::<BatterySimulatorControllerSetPresentVoltageMvRequest>(
1811 (voltage,),
1812 0x5462c9e9f947b8ce,
1813 fidl::encoding::DynamicFlags::empty(),
1814 )
1815 }
1816
1817 fn r#set_remaining_charge_uah(&self, mut charge: u32) -> Result<(), fidl::Error> {
1818 self.client.send::<BatterySimulatorControllerSetRemainingChargeUahRequest>(
1819 (charge,),
1820 0x54aa3c318fac5c33,
1821 fidl::encoding::DynamicFlags::empty(),
1822 )
1823 }
1824
1825 fn r#set_battery_spec(
1826 &self,
1827 mut spec: &fidl_fuchsia_power_battery::BatterySpec,
1828 ) -> Result<(), fidl::Error> {
1829 self.client.send::<BatterySimulatorControllerSetBatterySpecRequest>(
1830 (spec,),
1831 0x7324672546976583,
1832 fidl::encoding::DynamicFlags::empty(),
1833 )
1834 }
1835}
1836
1837pub struct BatterySimulatorControllerEventStream {
1838 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1839}
1840
1841impl std::marker::Unpin for BatterySimulatorControllerEventStream {}
1842
1843impl futures::stream::FusedStream for BatterySimulatorControllerEventStream {
1844 fn is_terminated(&self) -> bool {
1845 self.event_receiver.is_terminated()
1846 }
1847}
1848
1849impl futures::Stream for BatterySimulatorControllerEventStream {
1850 type Item = Result<BatterySimulatorControllerEvent, fidl::Error>;
1851
1852 fn poll_next(
1853 mut self: std::pin::Pin<&mut Self>,
1854 cx: &mut std::task::Context<'_>,
1855 ) -> std::task::Poll<Option<Self::Item>> {
1856 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1857 &mut self.event_receiver,
1858 cx
1859 )?) {
1860 Some(buf) => std::task::Poll::Ready(Some(BatterySimulatorControllerEvent::decode(buf))),
1861 None => std::task::Poll::Ready(None),
1862 }
1863 }
1864}
1865
1866#[derive(Debug)]
1867pub enum BatterySimulatorControllerEvent {}
1868
1869impl BatterySimulatorControllerEvent {
1870 fn decode(
1872 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1873 ) -> Result<BatterySimulatorControllerEvent, fidl::Error> {
1874 let (bytes, _handles) = buf.split_mut();
1875 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1876 debug_assert_eq!(tx_header.tx_id, 0);
1877 match tx_header.ordinal {
1878 _ => Err(fidl::Error::UnknownOrdinal {
1879 ordinal: tx_header.ordinal,
1880 protocol_name: <BatterySimulatorControllerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1881 })
1882 }
1883 }
1884}
1885
1886pub struct BatterySimulatorControllerRequestStream {
1888 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1889 is_terminated: bool,
1890}
1891
1892impl std::marker::Unpin for BatterySimulatorControllerRequestStream {}
1893
1894impl futures::stream::FusedStream for BatterySimulatorControllerRequestStream {
1895 fn is_terminated(&self) -> bool {
1896 self.is_terminated
1897 }
1898}
1899
1900impl fidl::endpoints::RequestStream for BatterySimulatorControllerRequestStream {
1901 type Protocol = BatterySimulatorControllerMarker;
1902 type ControlHandle = BatterySimulatorControllerControlHandle;
1903
1904 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1905 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1906 }
1907
1908 fn control_handle(&self) -> Self::ControlHandle {
1909 BatterySimulatorControllerControlHandle { inner: self.inner.clone() }
1910 }
1911
1912 fn into_inner(
1913 self,
1914 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1915 {
1916 (self.inner, self.is_terminated)
1917 }
1918
1919 fn from_inner(
1920 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1921 is_terminated: bool,
1922 ) -> Self {
1923 Self { inner, is_terminated }
1924 }
1925}
1926
1927impl futures::Stream for BatterySimulatorControllerRequestStream {
1928 type Item = Result<BatterySimulatorControllerRequest, fidl::Error>;
1929
1930 fn poll_next(
1931 mut self: std::pin::Pin<&mut Self>,
1932 cx: &mut std::task::Context<'_>,
1933 ) -> std::task::Poll<Option<Self::Item>> {
1934 let this = &mut *self;
1935 if this.inner.check_shutdown(cx) {
1936 this.is_terminated = true;
1937 return std::task::Poll::Ready(None);
1938 }
1939 if this.is_terminated {
1940 panic!("polled BatterySimulatorControllerRequestStream after completion");
1941 }
1942 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1943 |bytes, handles| {
1944 match this.inner.channel().read_etc(cx, bytes, handles) {
1945 std::task::Poll::Ready(Ok(())) => {}
1946 std::task::Poll::Pending => return std::task::Poll::Pending,
1947 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1948 this.is_terminated = true;
1949 return std::task::Poll::Ready(None);
1950 }
1951 std::task::Poll::Ready(Err(e)) => {
1952 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1953 e.into(),
1954 ))));
1955 }
1956 }
1957
1958 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1960
1961 std::task::Poll::Ready(Some(match header.ordinal {
1962 0x4a20d3731366aaf8 => {
1963 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1964 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1965 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1966 let control_handle = BatterySimulatorControllerControlHandle {
1967 inner: this.inner.clone(),
1968 };
1969 Ok(BatterySimulatorControllerRequest::GetBatteryInfo {
1970 responder: BatterySimulatorControllerGetBatteryInfoResponder {
1971 control_handle: std::mem::ManuallyDrop::new(control_handle),
1972 tx_id: header.tx_id,
1973 },
1974 })
1975 }
1976 0x2343eb65038c8b34 => {
1977 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1978 let mut req = fidl::new_empty!(BatterySimulatorControllerSetBatteryStatusRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1979 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatteryStatusRequest>(&header, _body_bytes, handles, &mut req)?;
1980 let control_handle = BatterySimulatorControllerControlHandle {
1981 inner: this.inner.clone(),
1982 };
1983 Ok(BatterySimulatorControllerRequest::SetBatteryStatus {battery_status: req.battery_status,
1984
1985 control_handle,
1986 })
1987 }
1988 0x79b2bf1a387acd85 => {
1989 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1990 let mut req = fidl::new_empty!(BatterySimulatorControllerSetChargeStatusRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
1991 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetChargeStatusRequest>(&header, _body_bytes, handles, &mut req)?;
1992 let control_handle = BatterySimulatorControllerControlHandle {
1993 inner: this.inner.clone(),
1994 };
1995 Ok(BatterySimulatorControllerRequest::SetChargeStatus {charge_status: req.charge_status,
1996
1997 control_handle,
1998 })
1999 }
2000 0xb40433f42c33527 => {
2001 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2002 let mut req = fidl::new_empty!(BatterySimulatorControllerSetChargeSourceRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2003 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetChargeSourceRequest>(&header, _body_bytes, handles, &mut req)?;
2004 let control_handle = BatterySimulatorControllerControlHandle {
2005 inner: this.inner.clone(),
2006 };
2007 Ok(BatterySimulatorControllerRequest::SetChargeSource {charge_source: req.charge_source,
2008
2009 control_handle,
2010 })
2011 }
2012 0x64a9d96eb7a45a9f => {
2013 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2014 let mut req = fidl::new_empty!(BatterySimulatorControllerSetBatteryPercentageRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2015 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatteryPercentageRequest>(&header, _body_bytes, handles, &mut req)?;
2016 let control_handle = BatterySimulatorControllerControlHandle {
2017 inner: this.inner.clone(),
2018 };
2019 Ok(BatterySimulatorControllerRequest::SetBatteryPercentage {percent: req.percent,
2020
2021 control_handle,
2022 })
2023 }
2024 0x577fc3314f7a48a4 => {
2025 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2026 let mut req = fidl::new_empty!(BatterySimulatorControllerSetLevelStatusRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2027 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetLevelStatusRequest>(&header, _body_bytes, handles, &mut req)?;
2028 let control_handle = BatterySimulatorControllerControlHandle {
2029 inner: this.inner.clone(),
2030 };
2031 Ok(BatterySimulatorControllerRequest::SetLevelStatus {level_status: req.level_status,
2032
2033 control_handle,
2034 })
2035 }
2036 0x7427251c9d2a794e => {
2037 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2038 let mut req = fidl::new_empty!(BatterySimulatorControllerSetTimeRemainingRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2039 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetTimeRemainingRequest>(&header, _body_bytes, handles, &mut req)?;
2040 let control_handle = BatterySimulatorControllerControlHandle {
2041 inner: this.inner.clone(),
2042 };
2043 Ok(BatterySimulatorControllerRequest::SetTimeRemaining {duration: req.duration,
2044
2045 control_handle,
2046 })
2047 }
2048 0x75588eae6b9b67e3 => {
2049 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2050 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
2051 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2052 let control_handle = BatterySimulatorControllerControlHandle {
2053 inner: this.inner.clone(),
2054 };
2055 Ok(BatterySimulatorControllerRequest::DisconnectRealBattery {
2056 control_handle,
2057 })
2058 }
2059 0x4bf85cfe3476975d => {
2060 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2061 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
2062 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2063 let control_handle = BatterySimulatorControllerControlHandle {
2064 inner: this.inner.clone(),
2065 };
2066 Ok(BatterySimulatorControllerRequest::IsSimulating {
2067 responder: BatterySimulatorControllerIsSimulatingResponder {
2068 control_handle: std::mem::ManuallyDrop::new(control_handle),
2069 tx_id: header.tx_id,
2070 },
2071 })
2072 }
2073 0x18306690352d9dfa => {
2074 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2075 let mut req = fidl::new_empty!(fidl::encoding::EmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
2076 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2077 let control_handle = BatterySimulatorControllerControlHandle {
2078 inner: this.inner.clone(),
2079 };
2080 Ok(BatterySimulatorControllerRequest::ReconnectRealBattery {
2081 control_handle,
2082 })
2083 }
2084 0x5462c9e9f947b8ce => {
2085 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2086 let mut req = fidl::new_empty!(BatterySimulatorControllerSetPresentVoltageMvRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2087 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetPresentVoltageMvRequest>(&header, _body_bytes, handles, &mut req)?;
2088 let control_handle = BatterySimulatorControllerControlHandle {
2089 inner: this.inner.clone(),
2090 };
2091 Ok(BatterySimulatorControllerRequest::SetPresentVoltageMv {voltage: req.voltage,
2092
2093 control_handle,
2094 })
2095 }
2096 0x54aa3c318fac5c33 => {
2097 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2098 let mut req = fidl::new_empty!(BatterySimulatorControllerSetRemainingChargeUahRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2099 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetRemainingChargeUahRequest>(&header, _body_bytes, handles, &mut req)?;
2100 let control_handle = BatterySimulatorControllerControlHandle {
2101 inner: this.inner.clone(),
2102 };
2103 Ok(BatterySimulatorControllerRequest::SetRemainingChargeUah {charge: req.charge,
2104
2105 control_handle,
2106 })
2107 }
2108 0x7324672546976583 => {
2109 header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2110 let mut req = fidl::new_empty!(BatterySimulatorControllerSetBatterySpecRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
2111 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<BatterySimulatorControllerSetBatterySpecRequest>(&header, _body_bytes, handles, &mut req)?;
2112 let control_handle = BatterySimulatorControllerControlHandle {
2113 inner: this.inner.clone(),
2114 };
2115 Ok(BatterySimulatorControllerRequest::SetBatterySpec {spec: req.spec,
2116
2117 control_handle,
2118 })
2119 }
2120 _ => Err(fidl::Error::UnknownOrdinal {
2121 ordinal: header.ordinal,
2122 protocol_name: <BatterySimulatorControllerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2123 }),
2124 }))
2125 },
2126 )
2127 }
2128}
2129
2130#[derive(Debug)]
2132pub enum BatterySimulatorControllerRequest {
2133 GetBatteryInfo { responder: BatterySimulatorControllerGetBatteryInfoResponder },
2136 SetBatteryStatus {
2139 battery_status: fidl_fuchsia_power_battery::BatteryStatus,
2140 control_handle: BatterySimulatorControllerControlHandle,
2141 },
2142 SetChargeStatus {
2145 charge_status: fidl_fuchsia_power_battery::ChargeStatus,
2146 control_handle: BatterySimulatorControllerControlHandle,
2147 },
2148 SetChargeSource {
2151 charge_source: fidl_fuchsia_power_battery::ChargeSource,
2152 control_handle: BatterySimulatorControllerControlHandle,
2153 },
2154 SetBatteryPercentage { percent: f32, control_handle: BatterySimulatorControllerControlHandle },
2157 SetLevelStatus {
2160 level_status: fidl_fuchsia_power_battery::LevelStatus,
2161 control_handle: BatterySimulatorControllerControlHandle,
2162 },
2163 SetTimeRemaining { duration: i64, control_handle: BatterySimulatorControllerControlHandle },
2166 DisconnectRealBattery { control_handle: BatterySimulatorControllerControlHandle },
2168 IsSimulating { responder: BatterySimulatorControllerIsSimulatingResponder },
2170 ReconnectRealBattery { control_handle: BatterySimulatorControllerControlHandle },
2173 SetPresentVoltageMv { voltage: u32, control_handle: BatterySimulatorControllerControlHandle },
2176 SetRemainingChargeUah { charge: u32, control_handle: BatterySimulatorControllerControlHandle },
2179 SetBatterySpec {
2181 spec: fidl_fuchsia_power_battery::BatterySpec,
2182 control_handle: BatterySimulatorControllerControlHandle,
2183 },
2184}
2185
2186impl BatterySimulatorControllerRequest {
2187 #[allow(irrefutable_let_patterns)]
2188 pub fn into_get_battery_info(
2189 self,
2190 ) -> Option<(BatterySimulatorControllerGetBatteryInfoResponder)> {
2191 if let BatterySimulatorControllerRequest::GetBatteryInfo { responder } = self {
2192 Some((responder))
2193 } else {
2194 None
2195 }
2196 }
2197
2198 #[allow(irrefutable_let_patterns)]
2199 pub fn into_set_battery_status(
2200 self,
2201 ) -> Option<(fidl_fuchsia_power_battery::BatteryStatus, BatterySimulatorControllerControlHandle)>
2202 {
2203 if let BatterySimulatorControllerRequest::SetBatteryStatus {
2204 battery_status,
2205 control_handle,
2206 } = self
2207 {
2208 Some((battery_status, control_handle))
2209 } else {
2210 None
2211 }
2212 }
2213
2214 #[allow(irrefutable_let_patterns)]
2215 pub fn into_set_charge_status(
2216 self,
2217 ) -> Option<(fidl_fuchsia_power_battery::ChargeStatus, BatterySimulatorControllerControlHandle)>
2218 {
2219 if let BatterySimulatorControllerRequest::SetChargeStatus {
2220 charge_status,
2221 control_handle,
2222 } = self
2223 {
2224 Some((charge_status, control_handle))
2225 } else {
2226 None
2227 }
2228 }
2229
2230 #[allow(irrefutable_let_patterns)]
2231 pub fn into_set_charge_source(
2232 self,
2233 ) -> Option<(fidl_fuchsia_power_battery::ChargeSource, BatterySimulatorControllerControlHandle)>
2234 {
2235 if let BatterySimulatorControllerRequest::SetChargeSource {
2236 charge_source,
2237 control_handle,
2238 } = self
2239 {
2240 Some((charge_source, control_handle))
2241 } else {
2242 None
2243 }
2244 }
2245
2246 #[allow(irrefutable_let_patterns)]
2247 pub fn into_set_battery_percentage(
2248 self,
2249 ) -> Option<(f32, BatterySimulatorControllerControlHandle)> {
2250 if let BatterySimulatorControllerRequest::SetBatteryPercentage { percent, control_handle } =
2251 self
2252 {
2253 Some((percent, control_handle))
2254 } else {
2255 None
2256 }
2257 }
2258
2259 #[allow(irrefutable_let_patterns)]
2260 pub fn into_set_level_status(
2261 self,
2262 ) -> Option<(fidl_fuchsia_power_battery::LevelStatus, BatterySimulatorControllerControlHandle)>
2263 {
2264 if let BatterySimulatorControllerRequest::SetLevelStatus { level_status, control_handle } =
2265 self
2266 {
2267 Some((level_status, control_handle))
2268 } else {
2269 None
2270 }
2271 }
2272
2273 #[allow(irrefutable_let_patterns)]
2274 pub fn into_set_time_remaining(self) -> Option<(i64, BatterySimulatorControllerControlHandle)> {
2275 if let BatterySimulatorControllerRequest::SetTimeRemaining { duration, control_handle } =
2276 self
2277 {
2278 Some((duration, control_handle))
2279 } else {
2280 None
2281 }
2282 }
2283
2284 #[allow(irrefutable_let_patterns)]
2285 pub fn into_disconnect_real_battery(self) -> Option<(BatterySimulatorControllerControlHandle)> {
2286 if let BatterySimulatorControllerRequest::DisconnectRealBattery { control_handle } = self {
2287 Some((control_handle))
2288 } else {
2289 None
2290 }
2291 }
2292
2293 #[allow(irrefutable_let_patterns)]
2294 pub fn into_is_simulating(self) -> Option<(BatterySimulatorControllerIsSimulatingResponder)> {
2295 if let BatterySimulatorControllerRequest::IsSimulating { responder } = self {
2296 Some((responder))
2297 } else {
2298 None
2299 }
2300 }
2301
2302 #[allow(irrefutable_let_patterns)]
2303 pub fn into_reconnect_real_battery(self) -> Option<(BatterySimulatorControllerControlHandle)> {
2304 if let BatterySimulatorControllerRequest::ReconnectRealBattery { control_handle } = self {
2305 Some((control_handle))
2306 } else {
2307 None
2308 }
2309 }
2310
2311 #[allow(irrefutable_let_patterns)]
2312 pub fn into_set_present_voltage_mv(
2313 self,
2314 ) -> Option<(u32, BatterySimulatorControllerControlHandle)> {
2315 if let BatterySimulatorControllerRequest::SetPresentVoltageMv { voltage, control_handle } =
2316 self
2317 {
2318 Some((voltage, control_handle))
2319 } else {
2320 None
2321 }
2322 }
2323
2324 #[allow(irrefutable_let_patterns)]
2325 pub fn into_set_remaining_charge_uah(
2326 self,
2327 ) -> Option<(u32, BatterySimulatorControllerControlHandle)> {
2328 if let BatterySimulatorControllerRequest::SetRemainingChargeUah { charge, control_handle } =
2329 self
2330 {
2331 Some((charge, control_handle))
2332 } else {
2333 None
2334 }
2335 }
2336
2337 #[allow(irrefutable_let_patterns)]
2338 pub fn into_set_battery_spec(
2339 self,
2340 ) -> Option<(fidl_fuchsia_power_battery::BatterySpec, BatterySimulatorControllerControlHandle)>
2341 {
2342 if let BatterySimulatorControllerRequest::SetBatterySpec { spec, control_handle } = self {
2343 Some((spec, control_handle))
2344 } else {
2345 None
2346 }
2347 }
2348
2349 pub fn method_name(&self) -> &'static str {
2351 match *self {
2352 BatterySimulatorControllerRequest::GetBatteryInfo { .. } => "get_battery_info",
2353 BatterySimulatorControllerRequest::SetBatteryStatus { .. } => "set_battery_status",
2354 BatterySimulatorControllerRequest::SetChargeStatus { .. } => "set_charge_status",
2355 BatterySimulatorControllerRequest::SetChargeSource { .. } => "set_charge_source",
2356 BatterySimulatorControllerRequest::SetBatteryPercentage { .. } => {
2357 "set_battery_percentage"
2358 }
2359 BatterySimulatorControllerRequest::SetLevelStatus { .. } => "set_level_status",
2360 BatterySimulatorControllerRequest::SetTimeRemaining { .. } => "set_time_remaining",
2361 BatterySimulatorControllerRequest::DisconnectRealBattery { .. } => {
2362 "disconnect_real_battery"
2363 }
2364 BatterySimulatorControllerRequest::IsSimulating { .. } => "is_simulating",
2365 BatterySimulatorControllerRequest::ReconnectRealBattery { .. } => {
2366 "reconnect_real_battery"
2367 }
2368 BatterySimulatorControllerRequest::SetPresentVoltageMv { .. } => {
2369 "set_present_voltage_mv"
2370 }
2371 BatterySimulatorControllerRequest::SetRemainingChargeUah { .. } => {
2372 "set_remaining_charge_uah"
2373 }
2374 BatterySimulatorControllerRequest::SetBatterySpec { .. } => "set_battery_spec",
2375 }
2376 }
2377}
2378
2379#[derive(Debug, Clone)]
2380pub struct BatterySimulatorControllerControlHandle {
2381 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2382}
2383
2384impl BatterySimulatorControllerControlHandle {
2385 pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
2386 self.inner.shutdown_with_epitaph(status.into())
2387 }
2388}
2389
2390impl fidl::endpoints::ControlHandle for BatterySimulatorControllerControlHandle {
2391 fn shutdown(&self) {
2392 self.inner.shutdown()
2393 }
2394
2395 fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
2396 self.inner.shutdown_with_epitaph(status)
2397 }
2398
2399 fn is_closed(&self) -> bool {
2400 self.inner.channel().is_closed()
2401 }
2402 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2403 self.inner.channel().on_closed()
2404 }
2405
2406 #[cfg(target_os = "fuchsia")]
2407 fn signal_peer(
2408 &self,
2409 clear_mask: zx::Signals,
2410 set_mask: zx::Signals,
2411 ) -> Result<(), zx_status::Status> {
2412 use fidl::Peered;
2413 self.inner.channel().signal_peer(clear_mask, set_mask)
2414 }
2415}
2416
2417impl BatterySimulatorControllerControlHandle {}
2418
2419#[must_use = "FIDL methods require a response to be sent"]
2420#[derive(Debug)]
2421pub struct BatterySimulatorControllerGetBatteryInfoResponder {
2422 control_handle: std::mem::ManuallyDrop<BatterySimulatorControllerControlHandle>,
2423 tx_id: u32,
2424}
2425
2426impl std::ops::Drop for BatterySimulatorControllerGetBatteryInfoResponder {
2430 fn drop(&mut self) {
2431 self.control_handle.shutdown();
2432 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2434 }
2435}
2436
2437impl fidl::endpoints::Responder for BatterySimulatorControllerGetBatteryInfoResponder {
2438 type ControlHandle = BatterySimulatorControllerControlHandle;
2439
2440 fn control_handle(&self) -> &BatterySimulatorControllerControlHandle {
2441 &self.control_handle
2442 }
2443
2444 fn drop_without_shutdown(mut self) {
2445 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2447 std::mem::forget(self);
2449 }
2450}
2451
2452impl BatterySimulatorControllerGetBatteryInfoResponder {
2453 pub fn send(
2457 self,
2458 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
2459 ) -> Result<(), fidl::Error> {
2460 let _result = self.send_raw(info);
2461 if _result.is_err() {
2462 self.control_handle.shutdown();
2463 }
2464 self.drop_without_shutdown();
2465 _result
2466 }
2467
2468 pub fn send_no_shutdown_on_err(
2470 self,
2471 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
2472 ) -> Result<(), fidl::Error> {
2473 let _result = self.send_raw(info);
2474 self.drop_without_shutdown();
2475 _result
2476 }
2477
2478 fn send_raw(
2479 &self,
2480 mut info: &fidl_fuchsia_power_battery::BatteryInfo,
2481 ) -> Result<(), fidl::Error> {
2482 self.control_handle.inner.send::<BatterySimulatorControllerGetBatteryInfoResponse>(
2483 (info,),
2484 self.tx_id,
2485 0x4a20d3731366aaf8,
2486 fidl::encoding::DynamicFlags::empty(),
2487 )
2488 }
2489}
2490
2491#[must_use = "FIDL methods require a response to be sent"]
2492#[derive(Debug)]
2493pub struct BatterySimulatorControllerIsSimulatingResponder {
2494 control_handle: std::mem::ManuallyDrop<BatterySimulatorControllerControlHandle>,
2495 tx_id: u32,
2496}
2497
2498impl std::ops::Drop for BatterySimulatorControllerIsSimulatingResponder {
2502 fn drop(&mut self) {
2503 self.control_handle.shutdown();
2504 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2506 }
2507}
2508
2509impl fidl::endpoints::Responder for BatterySimulatorControllerIsSimulatingResponder {
2510 type ControlHandle = BatterySimulatorControllerControlHandle;
2511
2512 fn control_handle(&self) -> &BatterySimulatorControllerControlHandle {
2513 &self.control_handle
2514 }
2515
2516 fn drop_without_shutdown(mut self) {
2517 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2519 std::mem::forget(self);
2521 }
2522}
2523
2524impl BatterySimulatorControllerIsSimulatingResponder {
2525 pub fn send(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
2529 let _result = self.send_raw(simulation_state);
2530 if _result.is_err() {
2531 self.control_handle.shutdown();
2532 }
2533 self.drop_without_shutdown();
2534 _result
2535 }
2536
2537 pub fn send_no_shutdown_on_err(self, mut simulation_state: bool) -> Result<(), fidl::Error> {
2539 let _result = self.send_raw(simulation_state);
2540 self.drop_without_shutdown();
2541 _result
2542 }
2543
2544 fn send_raw(&self, mut simulation_state: bool) -> Result<(), fidl::Error> {
2545 self.control_handle.inner.send::<BatterySimulatorControllerIsSimulatingResponse>(
2546 (simulation_state,),
2547 self.tx_id,
2548 0x4bf85cfe3476975d,
2549 fidl::encoding::DynamicFlags::empty(),
2550 )
2551 }
2552}
2553
2554mod internal {
2555 use super::*;
2556}