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