1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use {
fuchsia_async::Task, fuchsia_component::server::ServiceFs, futures::StreamExt,
mock_reboot::MockRebootService, std::sync::Arc, tracing::info,
};
#[fuchsia::main]
async fn main() {
info!("Starting mock reboot component");
let reboot_service = Arc::new(MockRebootService::new(Box::new(|reboot_reason| {
info!(?reboot_reason, "fuchsia.hardware.power.statecontrol.Admin",);
Ok(())
})));
let mut fs = ServiceFs::new();
fs.dir("svc").add_fidl_service(move |stream| {
info!("Starting mock reboot service");
let reboot_service = Arc::clone(&reboot_service);
Task::spawn(async move {
info!("Running mock reboot service");
reboot_service.run_reboot_service(stream).await.unwrap();
})
.detach()
});
fs.take_and_serve_directory_handle().unwrap();
fs.collect::<()>().await;
}