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